Releases: KronicDeth/intellij-elixir
v0.3.0
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
- #108 -
- 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
- #111 - New Elixir File validates that the name is a valid Alias, so each
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
v0.2.1
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.
- Function calls with neither parentheses nor
- #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.
- Inspection that marks errors for missing end-of-expressions (
- Bug Fixes
- #74 - Right hand-side of
dot_alias
anddot_identifier
was translated incorrectly. Only Aliases and Identifiers are allowed now. @KronicDeth
- #74 - Right hand-side of
v0.2.0
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
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 andX
for hexadecimal)
- New attributes for parts of numbers on Color Settings Page
- 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
- #73 - @KronicDeth
- Incompatible Changes
- #73: Number attribute has been removed from Color Settings page - @KronicDeth
v0.1.4
- Enhancements
- #17: All valid escape sequences (
\<character>
,\x<hexadecimal>
,\x{<hexadecimal>}
are recognized. - @KronicDeth - #18: Support for creation of Elixir modules - @abaire
- #21: Use pygments' elixir_example.ex supplied by @alco for Color Settings Page - @KronicDeth
- #25:
?
before any character or valid escape sequence will be recognized as a character token. - @KronicDeth - #35:
;
is recognized as EOL.\r\n
and\n
style EOL can be escaped with\
and will be treated as whitespace. - @KronicDeth - #38: Operator arity, associativity, and precedence - @KronicDeth
- #39: Decimal integers and floats - @KronicDeth
- #40: Identifiers (variable, function, and macro names) - @KronicDeth
- #41:
...
identifier - @KronicDeth - #42: Aliases (module names) - @KronicDeth
- #45: Keyword identifiers - @KronicDeth
- #49: Empty Parentheses - @KronicDeth
- #52: In Operator - @KronicDeth
- #54: Dot Operator - @KronicDeth
- #56: Keyword Lists - @KronicDeth
- #70: Matched Expressions - @KronicDeth
- #72: Regular Keywords (
end
,false
,fn
,nil
, andtrue
) - @KronicDeth
- #17: All valid escape sequences (
- Bug Fixes
- #17: Sigil terminator escapes are recognized, so that sigils are no longer prematurely terminated. - @KronicDeth
- #24: Comments do not consume EOL, so trailing comments don't cause error parsing expression on following line. - @KronicDeth
- #36: Sigil modifiers now work on groups in addition to heredocs. - @KronicDeth
- #47:
;
is separate fromEOL
and either or both can separate expressions, but onlyEOL
can separate operators and operands for operations - @KronicDeth
v0.1.3
v0.1.2
v0.1.1
- Bug Fixes
- Build using JDK 6 instead of 7 so that plugin will work by default on OSX Mavericks.
v0.1.0
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.
- CharList Sigils (
- Literal and interpolated sigils with highlighting
- 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.
v0.0.3
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.)
- Interpolation (
v0.0.2
- 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.