intellij-elixir

Elixir plugin for JetBrain's IntelliJ Platform (including Rubymine)

OTHER License

Stars
1.8K
Committers
55

Bot releases are hidden (Show)

intellij-elixir - v11.10.0

Published by KronicDeth over 3 years ago

Thanks

Changelog

v11.10.0

Enhancements

  • #1893 - @KronicDeth
    • Simplify onlyTemplateDateFileType
  • #1897 - @KronicDeth
    • Add missing opcodes to Code disassembler
      • OTP 23 opcode bs_start_match4
      • Current (in-development) OTP 24 opcodes
        • make_fun3
        • init_yregs
        • recv_marker_bind
        • recv_marker_clear
        • recv_marker_clear
        • recv_marker_user
  • #1899 - @KronicDeth
    • Log PsiElement if Call#finalArguments contain a null.
  • #1902 - @KronicDeth
    • Suggest ASDF directories as homepaths for both Elixir and Erlang for Elixir SDKs.
  • #1821 - @jacekgajek
    • Run 'Dialyzer based inspections (Elixir)' using Elixir SDK running mix dialyzer or any customized mix command.

Bug Fixes

  • #1893 - @KronicDeth
    • Use VirtualFile#fileType instead of EEx Type::INSTANCE when looking up extensions.
      Since LEEx file Type is a subclass of EEx's file Type, it calls templateDataFileTypeSet in EEx's Type, but templateDataFileTypeSet uses INSTANCE from EEx. By using the VirtualFile#fileType instead, it will properly be EEx or LEEx based on the actual file extension and then it can be used to strip that off and find the DataTemplateLanguage, such as HTMLLanguage for .html.leex.
  • #1897 - @KronicDeth
    • Compare max opcode in to file to max opcode number, not ordinal.
      Opcodes are 1-based, but the ordinal of the Kotlin Enums are 0-based, so the comparison was off-by-1 when a file had the max opcode and would be incorrectly marked as too new.
  • #1899 - @KronicDeth
    • Don't return null left or right infix operands in primaryArguments
      operation.infix.Normalized.leftOperand and .rightOperand ensures that PsiErrorElement is not returned: they can return null when there is no left or right operand. Infix.primaryArguments was not taking this into account and so could return a null as one of the primaryArguments, which broke Call.finalArguments.
  • #1902 - @KronicDeth
    • Don't attempt to execute elixir -e "System.version |> IO.puts" to get the version number as it requires too much of a full SDK to be built and from the Erlang paths to be correct too, which was rarely the case for ASDF. Since for Homebrew and ASDF, the directory name is the version name, this shouldn't be a loss in naming ability. If the directory name is not a parseable version it will be of the format Elixir at <path>. This is probably more correct for installs directories that aren't versioned as SDK versions aren't updated if the version installed at the path changes, such as /usr/local/elixir or /opt/elixir, etc.

README updates

Dialyzer

Inspection

Batch Mode
  1. Analyze > Run Inspection by Name... (⌥⇧⌘I)
  2. Type "Dialyzer"
  3. Select "Dialyzer based inspections (Elixir)" from the shortened list
  4. Hit Enter.

You'll be presented with a "Run 'Dialyzer based inspections (Elixir)'" dialog

Run 'Dialyzer based inspections (Elixir)'

  1. Change the scope if you want.
  2. Click "OK"

The Inspections Result Tool Pane will open and show results as each file is processed.

  1. Click the ▶ to expand the Credo section to show all warnings

    Individual Entry

  2. Click an entry for the details of an individual warning with a code highlighting.
    Code Highlighting

intellij-elixir - v11.9.2

Published by KronicDeth over 3 years ago

Thanks

Changelog

v11.9.2

Bug Fixes

  • #1887 - @KronicDeth
    • Protect from nested heredocs in documentation from stopping documentation's heredoc as happens in Module and Ecto.Query.
      • Use ~S for @moduledoc too, in addition to @doc.
      • Check if the documentation contains """ or ''' and use the opposite one as the promoter/terminator.
        • If neither is used, use """.
        • If both are used, use """, but then escape """ as \"\"\".
      • Trim trailing whitespace from documentation lines to match formatter output.
  • #1890 - @KronicDeth
    • Set runIde maxHeapSize to 7g
      • Set to the same I run my own IDE at, so the debugged instance isn't any slower than the normal IDE when I need to do extended all day testing to trigger bugs.
    • Test that all FormattingTest files can be parsed.
    • YYINITIAL is special - wrappers of the lexer assume that if in YYINITIAL, it is safe to shift the lexer over when there is an error, having {OPENING_CURLY} pushAndBegin(YYINITIAL) when it was either in YYINITIAL or INTERPOLATION means that the lexer looked like it was restartable when it really wasn't. This code has been in the lexer for 6 years.
      • When in YYINITIAL, { no longer recurses into YYINITIAL as } does not need to be counted to determine if it is closing an interpolation.
      • When in INTERPOLATION, { enters INTERPOLATION_CURLY to allow counting and matching of } until it can exit and go back to INTERPOLATION, where } will exit the interpolation.
      • When in INTERPOLATION_CURLY, { enters another level of INTERPOLATION_CURLY to allow counting and matching of } until it can exit and go up a level.
    • The } in YYINITIAL did yybegin(ADDITION_OR_SUBTRACTION_MAYBE), but it should have been pushAndBegin(ADDITION_OR_SUBTRACTION) as ADDITION_OR_SUBTRACTION_MAYBE or its following states all exit with handleInLastState() or popAndBegin(). This was not caught in #1859 because the extra YYINITIAL from pushAndBegin(YYINTIAL) hid the bug.
    • Prevent nested YYINITIAL bugs in the future by erroring
      • If trying to pushAndBegin(YYINITIAL).
      • If trying to push(YYINITIAL) and the state stack is not empty
    • Clear the state Stack when ElixirFlexLexer#reset is called, as at the level of typing and pasting, the ElixirFlexLexer is wrapped in many layers of lexers including LexerEditorHighlighter where the ElixirFlexLexer is no longer re-instantiated when there is no text, but instead, ElixirFlexLexer#reset is only called. This has always been an invariant violation since the stack state was added 7 years ago. It likely only became more apparent with the changes to +/- parsing in #1859 that made return-to-YYINITIAL less likely.
      • Since this stack.clear() has to be manually added to ElixirFlexLexer.java, which is generated from Elixir.flex, ResetTest is added to check that the code is still there.
    • For a reason I haven't been able to explain, the LexerEditorHighlighter stops working after : is typed at the start of an atom in certain situations, such as before ) inside a function call, like when adding an argument. In this case, the old version of the lexer would mark ) as a BAD_CHARACTER and continue to do so until an expected atom start of [a-zA-Z_], ', ", or an operator occurred. Now, if an invalid atom start is matched, the ATOM_START state ends and the previous state handles the text, which in the function case mean ) is parsed as CLOSING_PARENTHESIS. This change allows the highlighting to continue. I do not know if returning BAD_CHARACTER will always break the LexerEditorHighlighter, but I don't think, so since the GroovyLexer in intellij-community returns it, but it may be the case that it isn't actually returned ever when users are typing and only handled by the lexer for completeness.
intellij-elixir - v11.9.1

Published by KronicDeth almost 4 years ago

Thanks

  • For reporting that the JPS (external builder) subproject was built with Java > 1.8, which is incompatible with JPS.
  • For reporting NPE caused by old code referring to DepsWatcher as a Project Component instead of a Project Listener.
  • For reporting that syntax highlighting was broke due to broken decompilation of Kernel and Kernel.SpecialForms due to bugs in #1834.
  • 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 Kernel failing caused by bugs introduced in #1834.
      Syntax highlighting could fail part way through a file when Kernel needed 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 the Docs, it was guaranteed that the PsiCompiled stubs 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 the Docs doesn'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 from Docs can 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 to PsiCompiled functions.
      • Use correct macro for signature from Docs.
        Ensures that defmacro is used for macros instead of hard-coding def as in #1834.
      • Use ~S""" for docs from Docs chunk.
        The docs from the Docs chunk may contain interpolation in the code samples or #{ in regex examples, but these should not be treated as an interpolation start as the Docs format 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 using S""", which turns off interpolation.
      • Log an error if Code function can't be matched to decompiled source.
        Unlike the old InvalidMirrorException, 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.
  • 1878 - @KronicDeth
    • Fix missed references to DepsWatcher as project component
      DepsWatcher was converted to a Project Listener in #1844 to support installing the plugin from the Marketplace without reloading, but some references to DepsWatcher were still trying to get its instance for project using project.getComponent(), which would now return null.
  • #1879 - @KronicDeth
    • Target Java 1.8 for JPS compatibility.
      JPS (JetBrains Project System) is the API used to allow External Builders, like mix to build projects.
  • #1880 - @KronicDeth
    • Fix matching unquote(ATOM) call definitions to compiled function by using the argument tounquote when calculating the name of the call definition clause if possible.
      Needed to match anonymous function names that are unquoted because they contain / to separate the outer function name from the anonymous function naming convention.
    • Don't use Docs signature for MacroNameArity that is an operator or unquoted
      The signatures for operators and unquoted 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 specialized SignatureOverride decompiler that matches the actual code in defstruct.
    • Don't indent empty lines from Docs for @moduledoc and @doc to match the formatter output.
  • #1881 - @KronicDeth
    • Fix capitalization of Docs @moduledoc
      @moduleDoc -> @moduledoc
intellij-elixir - v11.9.0

Published by KronicDeth almost 4 years ago

Thanks

  • For reporting that -1 could not be parsed as a case clause.
  • For reporting that newlines could not be escaped at the end of heredocs.

Changelog

v11.9.0

Enhancements

  • #1844 - @KronicDeth
    • Make plugin updatable without a restart when installing from the JetBrains Marketplace. (If installing from file on GitHub you still need to restart due to a limitation in the JetBrains API.). JetBrains refers to this as a Dynamic Plugin.
      • Convert DepsWatcher from project component to project listener
      • Convert Watcher from module component to project listener
      • Make org.elixir_lang.packageManager extension point dynamic
    • Remove unnecessary assert.
    • Replace if with when
    • Include asd tool version
      Prevent me screwing up the quoter cache using the wrong elixir version again.
    • Update gradle project
      • gradlew 6.7.1
      • org.jetbrains.intellij 0.6.3
      • org.jetbrains.kotlin.jvm 1.3.70
      • de.undercouch.download to 4.4.1
    • Update to GitHub Environment Files
  • #1859 - @KronicDeth
    • Update CI to Elixir 1.11.2 and Erlang 23.1
      • Quoting (for verification of correspondences between plugin and Elixir native lexer and parser.)
        • Port elixir-lang/elixir#9725
          • Indentations for sigil binaries with complex content.
            Makes sure the indentation metadata is added to sigils that have content with metadata already.
        • Quote charlist the same as string when used for a quoted atom
        • Port elixir-lang/elixir@e89e9d874bf803379d729a3bae185052a5323a85
        • Add sigil delimiter to metadata
          Ports elixir-lang/elixir#9671
          • Have 3 character delimiter for heredocs
        • Add no_parens: true metadata
          Port elixir-lang/elixir@8e7befb1087bd37d5acb883e21925b1c0eb0a55f
      • Remove elixir-lang parsing tests for files that don't exist in Elixir 1.11
      • Add missing @Deprecated to match overridden method
      • Format expected and actual quoted
        Makes the diff not be a one-liner. so easier to spot the difference.
      • Convert Quoter to Kotlin
      • Regenerate Parser for newer GrammarParser version.
      • Port elixir-lang/elixir@1e4e05ef78b3105065f0a313bd0e1e78b2aa973e
  • #1834 - @marcindawidziuk
    • Rewrote the DocumentationProvider so it no longer relies on invoking mix (which I admit was more like a hack than a real solution). This now works so quickly that it actually makes sense to show docs on mouse hover.
      • It can get the documentation from both the source code and decompiled .beam files.
    • Decompilation of documentation was implemented according to EEP-48.
    • The experience on navigating through decompiled file has also been improved a bit
      • See the @moduledoc and @docs
      • See if a function has been deprecated
      • See the original signature of the function (instead of just p0, p1, ...).

Bug Fixes

  • #1844 - @KronicDeth
    • Fix deprecation warnings for IntelliJ IDEA 2020.2
      • Replace fileTypeFactory extensions with fileType
      • Convert fileTypes to Kotlin
      • Replace uses of deprecated Project#baseDir
      • Replace uses of deprecated ContainerUtil.newHashMap
      • Replace defaultLiveTemplatesProvider with defaultLiveTemplates
      • spaceExistanceTypeBetweenTokens replaced with spaceExistenceTypeBetweenTokens
      • Replace ListCellRendererWrapper with SimpleListCellRenderer
      • Replace StdFileTypes.PLAIN_TEXT with FileTypes.PLAIN_TEXT
      • Replace LanguageSubstitutors.INSTANCE with getInstance()
      • Replace ReportMessages.ERROR_REPORT with ReportMessages.getErrorReport()
      • Replace DefaultProgramRunner with GenericProgramRunner
        • Have only one runner for all configurations in plugin since body of runner was all the same for non-debug.
      • Don't override deprecated flushBufferBeforeTerminating()
      • Don't override deprecated acceptsFile
      • Override initExtra(Project) instead of initExtra(Project, MessageBus, Engine)
      • Replace NamedFoldingDescriptor with FoldingDescriptor
        • Convert folding.Builder to Kotlin
      • Replace file with value for @Storage annotation
      • Replace checkBox(fieldName, title) with checkBox(title, getter, setter)
      • Replace com.intellij.util.contains.Predicate with java.util.function.Predicate
      • Replace CodeStyleSettingsManager with CodeStyle
      • Replace Comparing.equal with Objects.equals
      • Replace UsageType(String) with UsageType(Supplier)
      • Replace PluginManager with PluginManagerCore
      • Replace WakValueHashMap with createWakeValueMap
      • Don't pass Pass to LineMarkerInfo
      • Replace newArrayListWithCapacity with ArrayList
      • Replace newIdentityHashMap with IdentityHashMap
      • Replace RefElement#element with #psiElement
      • Pass columnMargin to setupCheckboxColumn
      • Extensions.getExtensions(name) -> name.extensionList
      • Extensions.findExtension -> ExtensionPointName.findExtensionOrFail
      • Object -> Any
      • Replace choseAndSetSdk with SdkPopupFactory
    • Fix error reporting formatting
      • Fix new lines around excerpts so that code blocks quote correctly
      • Use FILE:LINE format for excerpt location, so it can be used in editors for rapid lookup.
      • Separate title from message
      • Remove use of ErrorBean
      • Pass project for LevelPropertyPusher DumbModeTask
      • Don't use constructor injection for SetupSDKNotificationProvider
      • Don't use AnnotationHolder::create* APIs and use AnnotationBuilder instead.
        • Convert Annotators to Kotlin
      • Use logger.error directly instead of LogMessageEx
    • Fix Atom annotator to only annotator within current element.
      Annotation keyword pair's key and colon instead of annotating the keyword key and the colon outside of it.
    • Fix Macro parsing in DbgI
      • ifAccessToString
        I missed taking the 3rd element of the tuple to get [Access, :get] and was checking the outer tuple directly.
        • Convert beam.assembly.ParserDefinition to Kotlin
      • ifWhenToString where as should be as?
    • Suppress unused variables for TODO()s
    • Remove unnecessary Line chunk dependency on Atom chunk
    • Switch unused unsignedInt values to _ as Kotlin doesn't support _name
    • Use key instead of environment for computeIfAbsent
    • Replace lambda with constructor reference
    • Remove unnecessary !!s
    • Replace mapIndexed with map because index is unused
    • Remove open that has no effect in object
    • Fix is overrides by converting to Kotlin
    • Remove unused Call from Implementation. and CallDefinitionClause .elementDescription(Call, ElementDescriptionLocation).
    • Don't shadow resolveResultList in addToResolveResultList
    • Remove useless ?:
    • Remove unnecessary != null
    • Fix named argument calling by using super argument name
    • Change Float.from(ByteArray, Int) to TODO() as implementation is invalid.
    • Remove unused ModuleChooserDialog
    • Setup EncodingManager for ParsingTestCase
    • Remove redundant internal
    • Don't highlight resolved callables along with referrers
      Newest annotation API asserts that the annotator only annotates the PsiElement being visited, so can't highlight the resolved call definitions at the same time anymore.
  • #1859 - @KronicDeth
    • Differentiate signs, unary +/-, and addition/subtraction in lexer.
      Fix parsing of -1 for case clauses (#1316) by more strictly parsing decimal exponent signs differently than addition/subtraction and differently from unary + and -. No longer have a "dual" operation emitted from the lexer like the Elixir native lexer and instead use specific tokens for each use case so that the parser doesn't need to decide on the operation.
    • Heredoc with escapable newlines (#1843)
      Heredocs allow the final newline to be escaped so you can write a heredoc in the code, but have no newlines in the string term at runtime.
    • Fix terminators docs to show closing version and not opening version
  • #1866 - @KronicDeth
    • Protect against IndexOutOfBounds from highlighterIterator in QuoteHandler.
intellij-elixir - v11.8.1

Published by KronicDeth about 4 years ago

Thanks

Changelog

v11.8.1

Bug Fixes

  • #1822 - @KronicDeth
    • Vendor JInterface 1.11 to support BIG_CREATION when debugging.
      The JInterface on Maven Central has stopped being updated because the OTP Team didn't actually maintain it, that was Basho, and Basho is gone now. This version of JInterface, 1.11, is from Erlang 23.0.4 from Homebrew, but with the formula edited (brew edit erlang) to add --with-java and then built with brew install erlang --build-from-source.
  • #1823 - @KronicDeth
    • On Windows, the file.path to the debugger server files has \, but they aren't escaped. Therefore, replace them with escaped version, \\ to fix debugging on Windows, but leave Linux and macOS unaffected.
intellij-elixir - v11.8.0

Published by KronicDeth about 4 years ago

Thanks

  • For reporting that unchecking Show Method Separators did not turn off the method separator above @doc and @spec
  • For reporting that the formatter did not work properly in EEx templates

Changelog

v11.8.0

Enhancements

  • #1792 - @marcindawidziuk
    • Quick documentation (F1/Ctrl+Q)
  • #1807 - @niknetniko
    • Run Icons in gutter next to ExUnit tests. The icon changes to the state of the test: green for passing and red for failing.

Bug Fixes

  • #1788 - @KronicDeth
    • Fix Unchecking Show Method Separator still showing on @doc and @spec.

      Previously, unchecking Show Method Separator would still show the method separator if it was the module attributes (such as @doc and @spec) associated with the call definition (def, defp, defmacro, or defmacrop) and only disabled the ones directly above the call definition. This is fixed by checking if method separators are enabled in getLineMarkerInfo(PsiElement) instead of the specialized getLineMarkerInfo(Call), so that the check happens for both module attributes and call definitions.

  • #1786 - @odk211
    • Remove "Unresolved module attribute" error annotation because module attributes cannot be resolved through use yet, so current annotation is a false positive in those cases.
  • #1801 - @niknetniko
    • Use SimpleTemplateLanguageFormattingModelBuilder for EEx files, so that the TemplateDataLanguage (i.e. html when the extension is .html.eex) formatter is used instead of the Elixir formatter.
intellij-elixir - v11.7.0

Published by KronicDeth over 4 years ago

Thanks

  • For reporting that if two module attributes start with the same letters, then later in the code, the shorter one is falsely flagged as an 'Unresolved module attribute'.
  • For reporting and fixing! that iex and erl arguments not being saved for IEx Mix Run Configurations

Changelog

v11.7.0

Enhancements

  • #1781 - @KronicDeth
    • Convert annotator.ModuleAttribute to Kotlin
      • Apply optional Kotlin transformations.

Bug Fixes

  • #1781 - @KronicDeth
    • Check if at least one resolution for module attribute references is valid

      Previously, it was checked if module attributes resolved to exactly one declaration, but this is no longer true with the looser reference resolution that allows invalid results for PisPolyVariantReference. resolve() will return null when there is more than one result from multiResolve even if some are invalid, so we need to explicitly check if the PsiReference is a PsiPolyVariantReference and if so check if any are valid.

    • Fix deprecation warnings for annotator.ModuleAttribute.

    • Quick fixes for inlinables in annotator.ModuleAttribute.

  • #1774 - @odk211
    • Fix iex and erl arguments not being saved for IEx Mix Run Configurations.
intellij-elixir - v11.6.1

Published by KronicDeth over 4 years ago

Thanks

Changelog

v11.6.1

Bug Fixes

intellij-elixir - v11.6.0

Published by KronicDeth over 4 years ago

Thanks

Changelog

v11.6.0

Enhancements

Bug Fixes

  • #1646 - @seanwash
    • Swap improperly sized General.QuestionDialog icon for RunConfigurations.TestUnknown icon for Unknown icon in Structure View.
  • #1632 - @ortex
    • Fix MODULENAME variable in defm live template, so that the file name is camel-cased before being capitalized.
  • #1643 - @zrma
    • Update README.md about information for Goland IDE since has been released for awhile and no longer only an EAP.
  • #1735 - @KronciDeth
  • #1738 - @Koziolek
    • JetBrains IDEs 2020.1 compatibility
      • Change obsolete references to AllocIcons in Icons to new ones in AlllIcons that are recommended in documentation.
      • Update to @NotNull annotation on PsiElementVisitor
        • DepGatherer
        • QuotableImpl.quote
  • #1745 - @KronciDeth
    • Fix tests for IDEA 2020.1.
  • #1753 - @KronciDeth
    • Get ProjectImportProvider builder in doGetBuilder instead of constructor.

      Fixes use of deprecated constructor dependency injection that is incompatible with dynamic, injectable plugins in 2020.1.

      com.intellij.diagnostic.PluginException: getComponentAdapterOfType is
      used to get org.elixir_lang.mix.project._import.Builder(
        requestorClass=org.elixir_lang.mix.project._import.Provider,
        requestorConstructor=protected org.elixir_lang.mix.project._import.Provider(org.elixir_lang.mix.project._import.Builder)
      ).
      
      Probably constructor should be marked as NonInjectable. [Plugin: org.elixir_lang]
      
  • #1685 - @gerritwalther
    • Allow underscores in binary (0b), octal (0o) , and hexadecimal (0x) numbers.
intellij-elixir - https://github.com/KronicDeth/intellij-elixir/releases/tag/v11.6.0-pre+20200326025312

Published by KronicDeth over 4 years ago

intellij-elixir - https://github.com/KronicDeth/intellij-elixir/releases/tag/v11.5.1-pre+20200313145502

Published by KronicDeth over 4 years ago

intellij-elixir - https://github.com/KronicDeth/intellij-elixir/releases/tag/v11.5.1-pre+20200313144735

Published by KronicDeth over 4 years ago

intellij-elixir - https://github.com/KronicDeth/intellij-elixir/releases/tag/v11.5.1-pre+20200312032811

Published by KronicDeth over 4 years ago

intellij-elixir - v11.5.0

Published by KronicDeth over 4 years ago

Changelog

v11.5.0

Enhancements

  • #1630 - @KronicDeth
    • Ignore the incompleteCode flag and instead always use the criteria used when incompleteCode was set.

      name prefix exact name ResolveResult valid
      N/A N/A

      This extends #1617 to more cases.

      • Qualified calls (Process.flag(...), etc)
      • Type specs (@spec foo(...))
      • Aliases (alias Foo...)
      • Module Attributes (@attribute)
      • Variables (foo)
      • Protocol reserved module attributes (@protocol and @for)

Bug Fixes

intellij-elixir - https://github.com/KronicDeth/intellij-elixir/releases/tag/v11.5.0-pre+20200202174313

Published by KronicDeth over 4 years ago

intellij-elixir - https://github.com/KronicDeth/intellij-elixir/releases/tag/v11.5.0-pre+20191201194202

Published by KronicDeth almost 5 years ago

intellij-elixir - v11.4.0

Published by KronicDeth almost 5 years ago

Changelog

v11.4.0

Enhancements

  • #1617 - @KronicDeth
    • Previously, the arity of a function or macro could only disagree with the definition and resolve if

      1. The arity of the call was in the arity range of the definition and the ResolveResult was marked as a validResult.
      2. The code is marked as incomplete (because the IDE detects typing, etc) and the arity mismatches and the ResolveResult is marked as an invalid result.

      By marking all arity mismatches, regardless of incompleteness of the code as an invalid result, Go To Definition and Show Parameters works when the the arity is incorrect. This makes Show Parameters work while typing out a call without the correct number of commas and allows jumping to the definition while typing out the call too.

intellij-elixir - https://github.com/KronicDeth/intellij-elixir/releases/tag/v11.3.0-pre+20191111031457

Published by KronicDeth almost 5 years ago

intellij-elixir - v11.3.0

Published by KronicDeth almost 5 years ago

Thanks

  • For reporting that Windows was reporting the SDKs were corrupt due to quoting issues

Changelog

v11.3.0

Enhancements

Bug Fixes

  • #1607 - @hoodaly
    • Fix must specify non-empty 'commandLine' parameter
  • #1608 - @KronicDeth
    • GeneralCommandLine's escaping for Windows can't handle the parentheses in a way that both works for the Windows shell and Elixir running the code the shell hands off. Removing the parentheses leaves runnable code even if it is no longer formatted.

      Fixes "Unknown Version" naming for Elixir SDKs and the "Probably SDK installed in ... is corrupt" dialog from appearing.

README Updates

Show Parameters

The parameter names for the current call can be shown (⌘+P/Ctrl+P)

Ecto.Schema.cast parameters

intellij-elixir - https://github.com/KronicDeth/intellij-elixir/releases/tag/v11.3.0-pre+20191021023818

Published by KronicDeth about 5 years ago