Remove the "protected" _ since other plugins may want to use it.
At the moment we're the only consumer, so not bumping the version number
of this (since it would be a major version number change), but we'll
need to be careful of this in the future.
This ensures that ReferenceTemplates are not returned from a call to
symbol_space.get_symbol. This is in keeping with the get_type method.
The symbol_space containing all symbol tables has visibility of all
tables and can cross-resolve amongst them. Asking a specific table
for a type may result in a ReferenceTemplate. This feels like a
better solution than having individual tables ask their parent space
to fill in the details of sibling tables.
Fixes#279.
1. Replaced readlines() with readline() to prevent loading the entire strings file to memory all at once.
2. Added process callback to indicate the progression.
3. Converted the re.compile of strings parse_line to global in order to prevent compilation for each line.
4. Changed the regex to not include the trailing newline (\n)
Sorts the results (as stated). Note that user interfaces may decide to
sort their results in an order of their choosing.
Also added a parameter that can be provided multiple times to only allow
plugins that match (any of) the parameters provided.
All conversions using `latin-1` have been converted to
`raw_unicode_escape` which is like `latin-1`, but handles unicode
characters appropriately (with a `\u` prefix).
Since this is like `latin-1` it should have no impact on things that ran
previously, but those that would fail with a unicode error now will
present an encoded unicode string. There may be situations where the
binary representation of unicode would be better (timeliner file
output?), but those can be changed when/if it's determined necessary.
Fixes#274.