Skip to content

Releases: KronicDeth/intellij-elixir

v1.1.0

31 Jul 13:09
v1.1.0
978272b
Compare
Choose a tag to compare

Changelog

v1.1.0

  • Enhancements
    • #167 - zyuyou
      • Build
        • Compile an individual file
        • Make Project to build the entire project
      • New
        • Elixir File has new templates
          • Empty module
          • Elixir Application
          • Elixir Supervisor
          • Elixir GenServer
          • Elixir GenEvent
        • Project > Elixir creates a new Elixir project with an empty lib directory marked as source directory.
        • Project from Existing Sources...
          • Create project from existing sources sets up the project with SDK using a pre-existing directory.
          • Import project from external model > Mix
            • Fetches the the dependencies with the local version of mix
            • Marks lib directory as source
            • Marks test directory as test sources
      • Run > Elixir Mix to setup Run Configurations to run mix tasks.

v1.0.0

27 Jul 15:19
v1.0.0
1ab5553
Compare
Choose a tag to compare

Changelog

v1.0.0

  • Enhancements
    • #168 - Update ant build on travis-ci.org to use IDEA 14.1.4 (from 14.0.2) - KronicDeth
    • #174 - Parser is verified to quote the same as native Elixir - KronicDeth
  • Bug Fixes
    • #154 - Fix parsing of unary vs binary +/- with leading and trailing spaces and newlines - KronicDeth
    • #155 - Allow EOL between list arguments and ] - KronicDeth
    • #156 - KronicDeth
      • Relative identifiers after . that start with and, or, and not will be lexed as a single identifier instead
        of and, or, or not followed by another identifier.
      • end is allowed as a relative identifier after .
    • #157 - Fix (...) as part of matched expression in no parentheses stab signature - KronicDeth
    • #158 - Allow multiple newlines to mark the end of an expression, but only one ; - KronicDeth
    • #159 - Allow operators in function references (<op>/<arity>) for function captures (&<op>/<arity>) - KronicDeth
    • #160 - unquote_splicing is properly wrapped in __block__ when in stab bodies - KronicDeth
    • #163 - Check for matching terminator in heredocs when determining white space type at beginning of line - KronicDeth
    • #170 - Allow + to count as addition - KronicDeth
    • #171 - Unary expressions inside parentheses are no longer marked ambiguous_op: nil - KronicDeth
    • #173 - Differentiate between Qualifier.'relative'() vs Qualifier.'relative' () and Qualifier."relative"() vs Qualifier."relative" () - KronicDeth
    • #176 - Fix link to Elixir website in README - shalecraig
    • #178 - All tokens have human-readable names and/or expected characters for better error messages - KronicDeth
  • Incompatible Fixes
    • #162 - New Elixir File has moved to the last item in the New File menu to preserve CTRL+N ENTER keyboard shortcut for New > File - jaketrent

v0.3.5

08 Jul 18:14
v0.3.5
56b1d33
Compare
Choose a tag to compare
v0.3.5 Pre-release
Pre-release

The parser is incomplete until v1.0.0. If you see
an odd error from valid Elixir code, check if it's a
known bug
that is planned to be fixed for v1.0.0. If you don't see your error, please
open a new issue. Please subscribe to notifications on
Issue #6 if you want to be notified when the parser is
complete.

Changelog

v0.3.5

  • Enhancements
    • #135 - do blocks (`do end) - @KronicDeth
    • #152 - Unmatched expressions (operations involving do block calls and normal matched expressions) - Kronicdeth
  • Bug Fixes
    • #137 - Lex full atom instead of just identifier-like operator prefix (:in<nospace>dex before vs :index after) - @KronicDeth
    • #138 - ! and not are properly wrapped in __block__s when in stab bodies - @KronicDeth

v0.3.4

04 Jun 13:11
v0.3.4
f6f167f
Compare
Choose a tag to compare
v0.3.4 Pre-release
Pre-release

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

v0.3.3

15 May 19:00
v0.3.3
57080f8
Compare
Choose a tag to compare
v0.3.3 Pre-release
Pre-release

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

v0.3.2

01 May 19:51
ec46868
Compare
Choose a tag to compare
v0.3.2 Pre-release
Pre-release

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

v0.3.1

28 Apr 03:26
58f8632
Compare
Choose a tag to compare
v0.3.1 Pre-release
Pre-release

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.

v0.3.0

28 Apr 03:40
v0.3.0
6026755
Compare
Choose a tag to compare
v0.3.0 Pre-release
Pre-release

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

v0.2.1

04 Apr 15:40
92059cd
Compare
Choose a tag to compare
v0.2.1 Pre-release
Pre-release

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

v0.2.0

01 Dec 04:09
0f8e974
Compare
Choose a tag to compare
v0.2.0 Pre-release
Pre-release

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