intellij-elixir

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

OTHER License

Stars
1.8K
Committers
55

Bot releases are visible (Hide)

intellij-elixir - v0.3.4

Published by KronicDeth over 9 years ago

The parser is incomplete until v1.0.0. If you see
an odd error from valid Elixir code, it is most likely due to the incomplete parser. (Expected failures are parsing do blocks.) Please subscribe to notifications
or comment on Issue #6 if you want to be notified when the
parser is complete.

Changelog

v0.3.4

intellij-elixir - v0.3.3

Published by KronicDeth over 9 years ago

The parser is incomplete until v1.0.0. If you see
an odd error from valid Elixir code, it is most likely due to the incomplete parser. Please subscribe to notifications
or comment on Issue #6 if you want to be notified when the
parser is complete.

Changelog

v0.3.3

  • Enhancements
    • #122 - @KronicDeth
      • Remote function calls (Alias.function, :atom.function, etc) and local function calls (function) with...
        • No Parentheses with...
          • No Arguments (Alias.function)
          • Keywords (Alias.function key: value)
          • Nested No Parentheses Call (Alias.function Inner.function positional, key: value)
          • Positional and Keyword arguments (Alias.function positional, key: value)
          • Matched Expression (Alias.function 1 + 2)
        • Parentheses with...
          • No arguments (Alias.function())
          • No Parentheses Call (Alias.function(Inner.function positional, key: value)
          • Keywords (Alias.function(key: value))
          • Positional and Keyword arguments (Alias.function(positional, key: value))
          • Trailing parentheses for quoting (def unquote(variable)(positional))
    • #125 - Bracket expression (foo[key]) - @KronicDeth
intellij-elixir - v0.3.2

Published by KronicDeth over 9 years ago

The parser is incomplete until v1.0.0. If you see
an odd error from valid Elixir code, it is most likely due to the incomplete parser. Please subscribe to notifications
or comment on Issue #6 if you want to be notified when the
parser is complete.

Changelog

v0.3.2

intellij-elixir - v0.3.0

Published by KronicDeth over 9 years ago

The parser is incomplete until v1.0.0. If you see
an odd error from valid Elixir code, it is most likely due to the incomplete parser. Please subscribe to notifications
or comment on Issue #6 if you want to be notified when the
parser is complete.

Changelog

v0.3.0

  • Enhancements
    • #108 - \x is marked as an error in CharLists, CharList Heredocs, Strings, and String Heredocs, but not in any sigils. - @KronicDeth
    • #111 - New Elixir File will automatically underscore the camel case module name when creating the file name and will convert qualifying aliases before the last . to directories - @KronicDeth
  • Incompatible Changes
    • #111 - New Elixir File validates that the name is a valid Alias, so each . separated part must start with a capital letter. Previous New Elixir File validated that the name was a valid path, and so forced the name to be lowercase. - @KronicDeth

Upgrading

v0.3.0

The prior version of New > Elixir File validated that the input name was a valid path and would only allow lowercase
names, so you'd be forced to set the name to foo, which would produce a foo.ex file, but foo would also be used
in the file contents:

defmodule foo do

end

In v0.3.0, the validator was corrected so that it only allows Alias (with and without .), so instead of entering the
name as foo, enter it as Foo. The file will still be named foo.ex, but the module name will correctly be Foo
in the file contents:

defmodule Foo do
end
intellij-elixir - v0.3.1

Published by KronicDeth over 9 years ago

The parser is incomplete until v1.0.0. If you see
an odd error from valid Elixir code, it is most likely due to the incomplete parser. Please subscribe to notifications
or comment on Issue #6 if you want to be notified when the
parser is complete.

Changelog

v0.3.1

  • Enhancements
    • #112 - File > New > Project From Existing Sources can be used in IntelliJ to setup the excludes, sources, tests, SDK and libraries for an Elixir project that has already been created with mix new. - @KronicDeth
    • #114 - Operators can be qualified function names - @KronicDeth
    • #118 - @KronicDeth
      • Anonymous function calls (.(...))
      • Inspection that marks errors when keywords aren't at end of list.

Upgrading

v0.3.1

NOTE: The Project Structure Detector is just bookkeeping and visual now. No other features currently take advantage of the SDK setting or the marked directories. Theses Project Settings will be used for later features.

To take advantage of the new Project Structure Detector in IntelliJ, you will want to recreate any project you
previously opened as an Empty Project.

(Copied from Elixir Plugin > Features > Project > From Existing Directory in README.md)

To take advantage of the new Project Structure Detector in IntelliJ, you will want to recreate any project you
previously opened as an Empty Project.

(Copied from Elixir Plugin > Features > Project > From Existing Directory in README.md)

  1. File > New > Project From Existing Sources...
  2. Select the root directory of your project.
  3. Leave the default selection, "Create project from existing sources"
  4. Click Next
  5. Project name will be filled with the basename of the root directory. Customize it if you like.
  6. Project location will be the root directory.
  7. Click Next.
  8. If you previously opened the directory in IntelliJ or another JetBrains IDE, you'll be prompted to overwrite the
    .idea directory. Click Yes.
  9. You'll be prompted with a list of detected Elixir project roots to add to the project. Each root contains a
    mix.exs. Uncheck any project roots that you don't want added.
  10. Click Next.
  11. Select a Project SDK directory by clicking Configure.
  12. The plugin will automatically find the newest version of Elixir installed. (NOTE: SDK detection only works for
    homebrew installs on OSX. Open an issue with information
    about Elixir install locations on your operating system and package manager to have SDK detection added for it.
    )
  13. If the automatic detection doesn't find your Elixir SDK or you want to use an older version, manually select select
    the directory above the bin directory containing elixir, elixirc, iex, and mix.
  14. Click Next after you select SDK name from the Project SDK list.
  15. Click Finish on the framework page. (No framework detection is implemented yet for Elixir.)
  16. Choose whether to open in a New Window or in This Window.

Alternatively, you can manually mark the directories and setup the Elixir SDK.

intellij-elixir - v0.2.1

Published by KronicDeth over 9 years ago

v0.2.1

  • Enhancements
    • #105 - No parentheses function calls can occur as the right operand in binary infix operations or the sole operand of unary prefix operation. - @KronicDeth
    • #74 - @KronicDeth
      • Function calls with neither parentheses nor do blocks that have at least 2 arguments: a positional argument and keyword arguments or 2 or more positional argument(s) followed by optional keyword arguments.
      • Inspection that marks errors for ambiguous commas
      • Inspection that marks errors for ambiguous parentheses
      • Quick Fix for the ambiguous parentheses to remove the space between the function name and the opening parentheses.
    • #75 - @KronicDeth
      • Inspection that marks errors for missing end-of-expressions (; and newlines) between expressions.
      • Quick Fix to insert ; for missing end-of-expression.
      • Quick Fix to insert newline for missing end-of-expression.
  • Bug Fixes
    • #74 - Right hand-side of dot_alias and dot_identifier
      was translated incorrectly. Only Aliases and Identifiers are allowed now. @KronicDeth
intellij-elixir - v0.2.0

Published by KronicDeth almost 10 years ago

This is the first release with a community contributor, @abaire, who I'd like to thank for adding Module creation support. This is the release marks the transition from primarily tokenization to parsing, including error recovery for base integers

screen shot 2014-11-30 at 10 08 26 pm

v0.2.0

  • Enhancements
    • #73 - @KronicDeth
      • New attributes for parts of numbers on Color Settings Page
        • Binary, Decimal, Hexadecimal, and Octal Digits
      • Decimal Exponent, Mark, and Separator
      • Invalid Binary, Decimal, Hexadecimal, and Octal Digits
        • 2-9, A-Z, and a-z will be parsed as invalid binary digits
        • 8-9, A-Z, and a-z will be parsed as invalid octal digits
        • G-Z and g-z will be parsed as invalid hexadecimal digits
      • Non-Decimal Base Prefix
        • Any letter other than b, o, or x, in either case, will be recognized as an invalid whole number base
      • Obsolete Non-Decimal Base Prefix (B for binary and X for hexadecimal)
    • Any digit, 0-9, A-Z, or a-z will be parsed as invalid for invalid whole number based numbers
    • Recovery for non-decimal whole numbers if the prefix is given, but no digits are given
  • Incompatible Changes
    • #73: Number attribute has been removed from Color Settings page - @KronicDeth

v0.1.4

intellij-elixir - v0.1.3

Published by KronicDeth about 10 years ago

screen shot 2014-10-14 at 9 02 36 am

  • Bug Fixes
    • Blank lines are properly parsed as whitespace instead of bad characters.
    • EOL is parsed as bad character in sigil name (after ~) instead of causing the lexer to fail to match, which raised exceptions in Event Log.
intellij-elixir - v0.1.2

Published by KronicDeth about 10 years ago

  • Enhancements
    • Atoms with highlighting
      • Atom with double or single quotes to allow interpolation. Double quotes are highlighted as 'String' while single
        quotes are highlighted as 'Char List'. This may be changed in the future.
      • Literal atoms highlighted as 'Atom'.
      • Operator atoms highlighted as 'Atom'.

color settings

intellij-elixir - v0.1.1

Published by KronicDeth about 10 years ago

  • Bug Fixes
    • Build using JDK 6 instead of 7 so that plugin will work by default on OSX Mavericks.
intellij-elixir - v0.1.0

Published by KronicDeth about 10 years ago

v0.1.0

  • Enhancements
    • Literal and interpolated sigils with highlighting
      • CharList Sigils (~c and ~C) highlighted as 'Char List' in Settings.
      • Regex Sigils (~r and ~R) highlighted as 'Sigil' in Settings. NOTE: Regex syntax is not internally highlighted yet
      • String Sigils (~s and ~S) highlighted as 'String' in Settings.
      • Word Sigils (~w and ~W) highlighted as 'Sigil' in Settings.
      • Custom Sigils highlighted as 'Sigil' in Settings.
      • Modifiers are highlighted on Regex, Word, and Custom while modifiers aren't allowed on CharList and String Sigils.
  • Bug Fixes
    • Single-quoted strings are correctly referred to as 'Character List' now instead of 'String' in Settings.
    • Double-quoted strings are correctly referred to as 'String' now instead of 'Interpolated String' in Settings.
    • Non-Heredoc CharLists and Strings can be multiline.
    • CharLists and Strings support interpolation and escape sequences.
intellij-elixir - v0.0.3

Published by KronicDeth about 10 years ago

v0.0.3

  • Enhancements
    • Single quoted strings with highlighting. ('String' in Color Settings.)
    • Double quoted strings with highlighting. ('Interpolated String' in Color Settings.)
      • Interpolation (#{ and }) with highlighting. ('Expression Substitution Mark' in Color Settings.)
      • Escape sequences for " and # with highlighting. ('Escape Sequence' in Color Settings.)
intellij-elixir - v0.0.2

Published by KronicDeth about 10 years ago

  • Enhancements
    • Binary, Hexadecimal, and Octal numbers (including deprecated syntax) are recognized as numbers.
    • Syntax Highlighting for numbers.
    • Color Settings page for changing the color of comments and numbers for Elixir (Preferences > Editor > Colors & Fonts > Elixir).
  • Bug Fixes
    • Parser no longer freezes IDE on tokens it doesn't understand.
    • White space at beginning of lines no longer leads to annotation errors.
    • White space and EOLs at beginning of file no longer lead to annotation errors.