When an explicit parsing error is encountered and a CompileError raised,
apply the changes to the context state. This way, the rule that catches
the exception (e.g. Statement or Until) knows where the error occurred.
Also, changed "Expected" errors to be reported at the end of the
previous non-whitespace token.
Many completion snippets insert more than just the name. For example,
the object completer inserts the braces and places your cursor inside
them automatically, to save some typing. However, if you're changing the
class of an existing object, this isn't what you want. Changed so that
if the next token is '{', only the name is inserted.
Made similar changes to the property and signal completers.
Don't invalidate everything every time, otherwise we rebuild everything
even when no file has changed at all. With e.g. Vala this means more or
less rebuilding the entire project with no incremental builds.
A lookup tag with no type attribute would crash the decompiler, even if
that was valid. This wasn't caught by the tests since blueprint never
generates such XML.
Also fixed a bug in the tests that caused decompiler-only tests not to
run.
When putting CDATA into the output, any instances of ']]>' in the text
are replaced with ']]]]><![CDATA[>'. This allows nested templates, e.g.
from list views inside list views to work properly.
This fixes the issue with terminal-based editor Helix which asks
language servers to shut down when trying to close the editor. Since
blueprint-compiler's server implementation didn't handle this request,
Helix ended up waiting for a response until timing out after a few
seconds and forcefully terminating the language server process.
Besides fixing Helix, this patch should also make user-initiated server
restarts more robust.
- Added tests for more error messages
- Test the "go to reference" feature at every character index of every
test case
- Delete unused code and imports
- Fix some bugs I found along the way
Looked through the Gtk documentation (and a few other libraries) to make
a list of all the properties that should probably be translated. If a
property is on the list, the language server will mark it as translated
in completions.