v11.9.1
Thanks
- For reporting that the JPS (external builder) subproject was built with Java > 1.8, which is incompatible with JPS.
- @petermant
- Robb Wright (@audaxion)
- Deni Helizar (@Deni7777)
- For reporting NPE caused by old code referring to DepsWatcher as a Project Component instead of a Project Listener.
- Vladimir Carballo (@venriq)
- For reporting that syntax highlighting was broke due to broken decompilation of
KernelandKernel.SpecialFormsdue to bugs in #1834.- Tomoki Odaka (@odk211)
- Jonathan Stiansen (@jonathanstiansen)
- Josh Taylor (@joshuataylor)
- Alex Yip (@alexttyip)
- Tres Wong-Godfrey (@tres)
- Andre Cloutier (@andrecloutier-pd)
- Andrew Shu (@montooner)
- Kilian Gärtner (@Meldanor)
- Aditya Suman Maharana (@adityamaharana7)
- Erik Hanson (@eahanson)
- Oliver Switzer (@oliverswitzer)
- Matt Pinkston (@mpinkston)
- Michael Maier (@zookzook)
- For testing fixes broken highlighting.
- Josh Taylor ((@joshuataylor)[https://github.com/joshuataylor])
Changelog
v11.9.1
Bug Fixes
- #1877 - @KronicDeth
-
Fix syntax highlighting stopping due to decompiling of
Kernelfailing caused by bugs introduced in #1834.
Syntax highlighting could fail part way through a file whenKernelneeded to be decompiled to resolve parts of the syntax. This would lead to the file to be colored above a certain point, but then the default gray after that point.- Connect compiled stubs to decompiled source by name/arity.
Previously, when the decompiler didn't use theDocs, it was guaranteed that thePsiCompiledstubs would correlate, in-order, with the decompiled source call definitions, and so mirrors could be set by matching up the list of them in order. Since theDocsdoesn't have to correspond to and doesn't correspond to the binary precisely for some BEAMs, most importantly,Elixir.Kernel.beam, the PsiCompiled stub and decompiled source is now matched by name and arity. This means some mirrors are missed, but no errors are produced. - Allow decompile source to map to entire arity range
Since the decompile source fromDocscan have default arguments the call definition clauses can have an arity range and not just a fixed arity, so all arities in the range need to be mappable toPsiCompiledfunctions. - Use correct macro for signature from
Docs.
Ensures that defmacro is used for macros instead of hard-codingdefas in #1834. - Use
~S"""for docs fromDocschunk.
The docs from theDocschunk may contain interpolation in the code samples or#{in regex examples, but these should not be treated as an interpolation start as theDocsformat does not support interpolation. Anything that looks like interpolation in the docs text was actually escaped in the original docs, so also escape it here by usingS""", which turns off interpolation. - Log an error if
Codefunction can't be matched to decompiled source.
Unlike the oldInvalidMirrorException, this won't be an exception and the binary <-> decompile will still work for the other functions/macros in the file, so it will be a more graceful degradation.
- Connect compiled stubs to decompiled source by name/arity.
-
- 1878 - @KronicDeth
- Fix missed references to
DepsWatcheras project component
DepsWatcherwas converted to a Project Listener in #1844 to support installing the plugin from the Marketplace without reloading, but some references toDepsWatcherwere still trying to get its instance for project usingproject.getComponent(), which would now returnnull.
- Fix missed references to
- #1879 - @KronicDeth
- Target Java 1.8 for JPS compatibility.
JPS (JetBrains Project System) is the API used to allow External Builders, likemixto build projects.
- Target Java 1.8 for JPS compatibility.
- #1880 - @KronicDeth
- Fix matching
unquote(ATOM)call definitions to compiled function by using the argument tounquotewhen calculating the name of the call definition clause if possible.
Needed to match anonymous function names that areunquoted because they contain/to separate the outer function name from the anonymous function naming convention. - Don't use
Docssignature forMacroNameAritythat is an operator orunquoted
The signatures for operators andunquoted don't produce valid code that can be parsed. - Don't use signatures for
__struct__functions.
The signatures for the__struct__functions are like%Module{}, but that's not parseable, so bypass the signatures with a specializedSignatureOverridedecompiler that matches the actual code indefstruct. - Don't indent empty lines from
Docsfor@moduledocand@docto match the formatter output.
- Fix matching
- #1881 - @KronicDeth
- Fix capitalization of
Docs@moduledoc
@moduleDoc->@moduledoc
- Fix capitalization of