Bot releases are visible (Hide)
Published by KronicDeth about 8 years ago
Canary build of v4.3.0-dev at 2016-09-01T14:43:52Z
Published by KronicDeth about 8 years ago
Canary build of v4.3.0-dev at 2016-08-22T08:18:35Z
Published by KronicDeth about 8 years ago
isVariable
do end
completion mistakenly completed do: end
.def
in the else
of an if
with Plug.Endpoint
.doc
template and the need for @doc
.BraceMatcher
do
to end
fn
to end
"""
to """
'''
to '''
<<
to >>
<
to >
[
to ]
{
to }
(
to )
[
with ]
{
with }
(
with )
QuoteHandler
completes standard quotes (that start with "
or '
)
'
with '
"
with "
'''
with '''
"""
with """
TypedHandler
completes the non-standard quotes and braces
do
with end
fn
with end
<<with
>>`<
with >
(for promoters)/
with /
(for promoters)|
with |
(for promoters)isVariable(ElixirMapUpdateArguments)
- @KronicDeth
enclosingMacroCall
could climb out the stab after a do
, but not the else
in an if
, which is used for defined functions conditionally in Phoenix.Endpoint.server/0
- @KronicDeth
@
, but the doc template starts with @
, so it ends up inserting @@doc ...
. The @doc
template is the same code, but since the name starts with @
, it doesn't insert a second @
. Unfortunately, the template search code doesn't prompt when just typing @
, so you end up having to type @doc
before only one template is selected. The @doc
template will show in the lookup as soon as @d
is typed, but you have to select it from the list then before tabbing to accept. - @KronicDeth
do
instead of start for end
completion to stop ignoring the :
in do:
, when caret - 3
would land on the o
, now all tests are meant to land on the o
, so do:
won't complete with end
incorrectly anymore. - @KronicDeth
ElixirVariable
in highlightTypesAndTypeParameterUsages
- @KronicDeth
The right-delimiter will be automatically inserted when the left
delimiter is typed. In some cases, to prevent false positives, the
the delimiter is only completed if when used for sigils.
Preceded By | Left | Right |
---|---|---|
do |
end |
|
fn |
end |
|
[ |
] |
|
{ |
} |
|
( |
) |
|
' |
' |
|
''' |
''' |
|
" |
" |
|
""" |
""" |
|
<< |
>> |
|
~<sigil-name> |
< |
> |
~<sigil-name> |
/ |
/ |
~<sigil-name> |
` | ` |
All delimiters that are auto-inserted are also matched for highlighting
Left | Right |
---|---|
do |
end |
fn |
end |
[ |
] |
{ |
} |
( |
) |
' |
' |
''' |
''' |
" |
" |
""" |
""" |
<< |
>> |
< |
> |
/ |
/ |
` | ` |
Published by KronicDeth about 8 years ago
Canary build of 4.2.0-dev at 2016-08-12T13:47:19
Published by KronicDeth about 8 years ago
A.{B, C}
) support. Special thanks to Alexander Merkulov (@merqlove) for guilting me to support this Elixir 1.2 (!) feature that I knew about since September 2015 after he let me know not having it broke parsing on over half his code and for supplying test repositories.PsiElement
s were null
, as can happen with error handling recovery.isParameter
failedmix --version
output changed AGAIN for Elixir 1.3. Thanks to Christian Meter (@n2o), Gonzalo Gabriel Jiménez Fuentes (@mendrugory), Roeland (@r03), Serhij Korochanskyj (@webzepter) for confirming the fixed worked in the Canary build.Match#processDeclarations
.do end
blocks to fold to do: ...
->
operator and the right operand to fold to -> ...
@doc
, @moduledoc
and @typedoc
value to fold to "..."
.alias
, import
, require
, or use
to be followed to a single alias
, import
, require
, or use
followed by ...
.@doc
, @spec
and def
, defp
, defmacro
, and defmacrop
(call definition clauses) of the same name and arity range. Arity range will be used if one of the call definition clauses uses default arguments.@for
folds to the resolved module name in defimpl
@protocol
folds to the protocol name in defimpl
mix
and elixir
version parsing. - @KronicDeth
gen
folder using Grammar Kit 1.4.1 and fix some bugs (including JetBrains/Grammar-Kit#126) manually.QualifiedBracketOperation
and UnqualifiedBracketOperation
extend BracketOperation
, so that BracketOperation
can be used to match both when the qualification does not matter. - @KronicDeth
Regenerate parser with GrammarKit 1.4.2
ElixirSdkRelease
is now Comparable
, so version checks can be done for tests to restrict them to Elixir 1.2+ for multiple alias support.
Resolve Multiple Aliases with unqualified Alias in tuples.
canonicalName
borrows from the idea of PsiReference#canonicalText
: an element can have both a Name (from getName
), which is the literal name in the code, which can be renamed, and a Canonical Name, which is the name to refer to the element without need for imports or aliases. For this change, defimpl
, defmodule
, and defprotocol
will show their full module Alias for their Canonical Name.
This change addresses the use case of Go To Declaration that should resolved to a nested defmodule
.
parameter
is null
before Variable#execute
call in Variable#execute(PsiElement[], ResolveState)
. - @KronicDeth
isVariable
and variableUseScope
for var!(name)[...]
- @KronicDeth
@for
is no longer marked as unresolved in defimpl
and instead resolve to the either the <name>
in for: <name>
or the module name for the enclosing module when for:
is not given.@protocol
is no longer marked as unresolved in defimpl
and instead resolve to the <name>
in defimpl <name>
.assert checkRight || checkLeft
in Match#processDeclaraions
, do the normal code if checkRight || checkLeft
and log an error report otherwise, so that the exact code that trigger this error can be reported and the method fixed to handle that form of Match
later.mix --version
, so that it includes the Erlang header (Erlang/OTP ... [erts-...] [source] [64-bit] [smp:..:..] [async-threads:..] [hipe] [kernel-poll:false] [dtrace]
) on the first line and Mix <version>
on the 3rd line. Previously the parsing expected Mix <version>
to be the first line.do
block or keyword. This allows Go To Symbol to no error in projects using Dogma as defrule
is now treated as Unknown instead of causing an error that the enclosing modular could not be found.BracketOperations
are neither parameters nor variables. - @KronicDeth
mix
output, which allows file looks to work correctly.PsiScopeProcessor#execute
since #execute
is not expected to handle error elements. - @KronicDeth
A.{B, C}
to grammar with quoting to check consistence with Elixir 1.2. Ports elixir-lang/elixir#3666.fullyQualifiedName
instead of getName
for resolvableName
because fullyQualifiedName
is needed so that qualified aliases inside of the { }
of a multiple alias will not have a name as getName
is null
for those qualified aliases because the name from getName
has to be a literal name that can be renamed and qualified names can't be renamed.Module
icon got the same icon as Unknown
when creating Unknown
somehow, I assume due to find-replace. - @KronicDeth
You can collaspe (fold) pre-defined regions of your Elixir code to make it easier to quickly scroll through files or hide details you don't care about right now.
Expanded | Collapsed | Folded By Default? |
---|---|---|
do end |
do: ... |
No |
-> and right operand |
-> ... |
No |
@doc VALUE |
@doc "..." |
No |
@moduledoc VALUE |
@moduledoc "..." |
No |
@typedoc VALUE |
@typedoc "..." |
No |
alias ALIAS1 alias ALIAS1 | alias ... |
Yes |
import ALIAS1 import ALIAS2 | import ... |
Yes |
require ALIAS1 require ALIAS2 | require ... |
Yes |
use ALIAS1 use ALIAS2 | use ALIAS1 |
Yes |
@for |
FOR in defimpl PROTOCOL, for: FOR
|
Yes |
@protocol |
PROTOCOL in defimpl PROTOCOL, for: FOR
|
Yes |
@MODULE_ATTRIBUTE | VALUE in @MODULE_ATTRIBUTE VALUE
|
Yes |
Published by KronicDeth about 8 years ago
Canary build of 4.1.0 at 2016-08-05T13:37:59Z
Published by KronicDeth over 8 years ago
Canary build of v4.1.0 built at 2016-07-12T02:47:27Z
Published by KronicDeth over 8 years ago
null
argument to getDescriptiveName
when trying to rename a variable.Ecto
.additionalTextAttributes
to improve the syntax highlightingdef(macro)?p?
) parameters to themselvesfor
comprehension as variable&&
operands, which handles code that matches a variable and only uses the variable on success like ((cwd = cwd()) && write_tmp_dir(cwd))
destructure
@type
names._
to only itself, no matter how many are used to reflect that it is non-binding, while _<name>
will resolve to _<name>
as it does bind.
@
). Non-inplace renaming should also be supported, but inplace is preferred. (There's a setting to turn off in-place renaming in JetBrains IDEs.)operation.infix.Normalized
null
."keyword key"
.bind_quoted:
usage and call those "quote bound variable"
.Matched
and Unmatched
form of operations when the code cares about the operator
And
UnaryNonNumericOperation
processDeclarations
to support variable and parameter resolution using PsiTreeUtil.treeWalkUp
and PsiScopeProcessors
ElixirStabBody
NamedElements
, so they can be Rename Refactored.org.elixir_lang.psi.name.{Module,Function}
constants.key:
in key: value
) that aren't quotes ("key": value
or 'key': value
) as Atom. - @KronicDeth
Alias
Braces and Operators
Bit
(<<
and >>
)Braces
({
and }
)Brackets
([
and ]
)Char Tokens
(?
)Comma
(,
)Dot
(.
)Interpolation
(#{
and }
)Maps and Structs
Maps
(%{
and }
)Structs
(%{
and }
when used for struct. The Alias is still highlighted using Alias
)Operation Sign
Parentheses
((
and )
)Semicolon
(;
)Calls
Function
(currently only combined with Predefined
to highlight Kernel
functions. Will be used later for all function calls once function references are implemented.)Macro
(curently only combined with Predefined
to highlight Kernel
and Kernel.SpecialForms
macros. Will be used later for all macro calls once macro references are implemented.)Predefined
(Combined with Function
to highlight Kernel
functions. Combined with Macro
to highlight Kernel
and Kernel.SpecialForms
macros.)Escape Sequence
Module Attributes
Documentation
(Previously Documentation Module Attributes
)
Text
(Previously Documentation Text
)Types
Callback
(my_callback
in @callback my_callback() :: :ok
or my_macro_callback
in @macrocallback my_macro_callback
)Specification
(my_function
in @spec my_function() :: :ok
)Type
typ
and integer
in @type typ :: integer
parameterized
in @type parameterized(type_parameter) :: type_parameter
typtyp
in @opaque typtyp :: 1..10
typ
and typtyp
in @callback func(typ, typtyp) :: :ok | :fail
binary
and utf8
in << "hello" :: binary, c :: utf8, x = 4 * 2 >> = "hello™1"
Type Parameters
(type_parameter
in @type parameterized(type_parameter) :: type_parameter
)Numbers
Binary, Decimal, Hexadecimal, and Octal Digits
(Previously at top-level.)Decimal Exponent, Mark and Separator
(Previously at top-level)Invalid Binary, Decimal, Hexadecimal, and Octal Digits
(Previously at top-level.)Non-Decimal Base Prefix
(Previously at top-level.)Obsolete Non-Decimal Base Prefix
Variables
Ignored
Parameter
Variable
\n
\r\n
>>
]
}
)
;
->
end
after
catch
else
rescue
-
to separate segment options instead of a list.)ElixirStabBody
and ElixirFile
because they are sequences of expressions.false
, nil
, and true
) as merge of Atom
and Keyword
text attributes. If both only use foreground color, Keyword
wins.QualifiableAlias
as Alias
.<key>:
) as Atom
.with
to highlighted special formsadditionalTextAttributes
to plugin.xml
in CONTRIBUTING.md
COLOR_SCHEMA_DESIGN.xml
, so they can be applied to different base schemes, such as applying the current Darcula additonalTextAttributes to Default.@behaviour
, @callback
, @macrocallback
, @doc
, @moduledoc
, @typedoc
, @spec
, @opaque
, @type
, and @typep
, should not have references because their uses are unrelated.defmacro @(...)
in Kernel and that @
should count as a function name, not a prefix for a module attribute name.null
Module for Scratch File use scope"call"
for Call type*Two
operations using Type
interfaceAccessExpression
declarationsfoo
in @spec foo
as a type, which occurs while typing a new @spec
before ::
can be typed.leftOperand
is null
even when checkLeft
is true
because checkLeft
can be true
and leftOperand
is null
when the lastParent
is the operand or operation as a whole, but there is an error in the unnormalized leftOperand
leading to the normalized leftOperand
being null
.null
before checking if it resolves to null
when replacing module attribute usages with their value because AtNonNumericOperation
s can have a null
reference when they are non-referencing, like @spec
.PsiLeafElement
when looking for variables because the PsiLeafElement
is an error.Match
is a PsiFile
, the Match
Use Scope is the rest of the file.=
to Operator Signs
NoParenthesesKeywords
when highlighting types, which occurs when the ::
has no proper right operand and the following one-liner function clause with do:
is parsed as the right operand.DUMMY_BLOCK
when looking for Variable, which prevents walking through errors.Normalized
pattern for Prefix
, so that the operand is null
when only the operator matches or the operand has errors.<%=
from EEX is detected, don't throw error when Modular
can't be found.jps-builder
using only Java 1.6 compatible .class
es - @KronicDeth
In IntelliJ 14.1, all of openapi.jar
targets Java 1.6 (with MAJOR.MINOR
50.0
), but in IntelliJ 2016.1, some of openapi.jar
targets only Java 1.8 (with MAJOR.MINOR
52.0
), since jps-builders
require parts of openapi.jar
and must target Java 1.6 even for IntelliJ 2016.1, the 52.0
.class
es needed to be ported into org.elixir_lang.jps.builder
, so that the 52.0
version in openapi.jar
wouldn't be attempted to be loaded.
This ended up being 5 classes:
ExecutionException
GeneralCommandLine
ParametersList
ParamsGroup
ProcessNotCreatedException
Only GeneralCommandLine
was used directly, all others are dependencies of it.
Documentation Module Attributes
renamed to Module Attributes
> Documentation
Documentation Text
renamed to Module Attributes > Documentation > Text
Expression Substitution Mark
renamed to Braces and Operators > Interpolation
.Numbers
instead of being at the top-level:
Binary, Decimal, Hexadecimal, and Octal Digits
Decimal Exponent, Mark and Separator
Invalid Binary, Decimal, Hexadecimal, and Octal Digits
Non-Decimal Base Prefix
Obsolete Non-Decimal Base Prefix
Module attributes declared earlier in the file can be completed whenever you type @
and some letter. If you want to see all module attributes, you can type @a
, wait for the completions to appear, then delete the @
to remove the filtering to a
.
Parameter and variable usages can be completed whenever typing an identifier. The completions will include all variables know up from that part of the file. It can include variables from outside macros, like quote blocks.
Go To Declaration is a feature of JetBrains IDEs that allows you to jump from the usage of a symbol, such as a Module
Alias, to its declaration, such as the defmodule
call.
Cmd+B
Cmd+Click
If you hold Cmd
and hover over the variable before clicking, it will say parameter
or variable
, which matches the annotation color.
Find Usage is a feature of JetBrains IDEs that allows you to find all the places a declared symbol, such a Module Alias
in a defmodule
, is used, including in strings and comments.
Alt+F7
Shift+F6
Published by KronicDeth over 8 years ago
Canary build of the call-references branch built at 2016-05-31T12:19:01Z
Published by KronicDeth over 8 years ago
Canary build of the call-references branch built at 2016-05-20T21:37:20Z
Published by KronicDeth over 8 years ago
AssertionError
for Prefix#operator
using the new error reporter.@NotNull
violation for FindUsagesProvider#getType
using the new error reporter.assert
in Prefix#operator
. NOTE: This does not address error recovery recovery since I don't have a regression test case. - @KronicDeth
PsiNameIdentifier
s now even if they don't resolve, but that means they all need to support FindUsagesProvider#getType
, which they don't, so use a placeholder of "unknown call type" for any Call
that can't be matched and "unknown element" for anything else. - @KronicDeth
Syntax highlighting for the following tokens:
abs
apply
apply
binary_part
bit_size
byte_size
div
elem
exit
function_exported?
get_and_update_in
get_in
hd
inspect
is_atom
is_binary
is_bitstring
is_boolean
is_float
is_function
is_function
is_integer
is_list
is_map
is_number
is_pid
is_port
is_reference
is_tuple
length
macro_exported?
make_ref
map_size
max
min
node
node
not
put_elem
put_in
rem
round
self
send
spawn
spawn
spawn_link
spawn_link
spawn_monitor
spawn_monitor
struct
throw
tl
trunc
tuple_size
update_in
@
alias!
and
binding
def
defdelegate
defexception
defimpl
defmacro
defmacrop
defmodule
defoverridable
defp
defprotocol
defstruct
destructure
get_and_update_in
if
in
is_nil
match?
or
put_in
raise
raise
reraise
reraise
sigil_C
sigil_R
sigil_S
sigil_W
sigil_c
sigil_r
sigil_s
sigil_w
to_char_list
to_string
unless
update_in
use
var!
__CALLER__
__DIR__
__ENV__
__MODULE__
__aliases__
__block__
alias
case
cond
fn
for
import
quote
receive
require
super
try
unquote
unquote_splicing
Published by KronicDeth over 8 years ago
def
, defp
, defmacro
, and defmacrop
)@callback
and @macrocallback
)@spec
)foo(bar)
) for delegation (defdelegate foo(bar), to: BAZ
)defimpl
)defprotocol
)isModular
checks as the stubbing for the index uses for Go To Symbol.NotImplementedExceptions
and (some) assert
s to logging custom error message that include the PsiElement
text and the containing file as an attachment. The files make the URL too big for the error handler to put the file contents in when opening the browser with the error handler, so the issue body instead explains how to get the attachment text out of IntelliJ's "IDE Fatal Errors"Infix#operator
to work on operations with errors, which eliminates the AssertionError
reported when typing infix operation and they are incomplete - @KronicDeth
Use TextAttributesKey
s that aren't deprecated in 2016.1 and work back to 14.1
All of CodeInsightColors
is deprecated, so all constants from there had to be replaced. Unfortunately, the recommended replacements don't have the same color as the original, so I used different DefaultLanguageHighlighterColors
constants for some.
"Module Attribute" is now based on DefaultLanguageHighlighterColors.CONSTANT
(which is purplish in Darcula) instead of the recommended METADATA
, which is yellow. Although module attributes don't have to be constant since they can be set to accumulate, often they are used as constants and not really as metadata, since they are just data then. All the metadata
uses of module attributes have a separate color.
"Specification" is now based on DefaultLanguageHighlighterColors.FUNCTION_DECLARATION
, which maintains the golden color that CodeInsightColors.METHOD_DECLARATION_ATTRIBUTES
had.
"Type" is now based on DefaultLanguageHighlighterColors.METADATA
, which is bright yellow unlike CodeInsightColors.ANNOTATION_ATTRIBUTE_NAME_ATTRIBUTES
, which was a bright white.
"Type Parameter" is now based on DefaultLanguageHighlighterColors.PARAMETER
, which unfortunately has no attributes associated with it, but the constant name was too good a fit not to use, so if you want the old color, you'll need to customize it yourself.
Restore compatibility with the IntelliJ IDEA 14.0 release line
FileTemplateManager#getInstance
if FileTemplateManager#getDefaultInstance
is not availableFileChooserDescriptorFactory#createSingleLocalFileDescriptor
(which works in 14.0 through 2016.1) instead of FileChooserDescriptorFactory#createSingleFileDescriptor
(which only works in 14.1 through 2016.1)AssertionError
in GoToSymbolContributor
when the Modular
(defimpl
, demodule
, defprotocol
, and quote
) could not be resolved due a def
being surrounded by a for
comprehension, which is common in Elixir libraries as was the case for Postgrex
: any enclosing for
comprehension(s) will now be ignored and the next enclosing macro will be checked to see if it is a Modular
. - @KronicDeth
:
in keyword pairs, after the when
, such as in @spec foo(id) :: id when id
before finishing typing @spec foo(id) :: id when id: String.t
, the keyword key will be properly highlighted as a Type Parameter - @KronicDeth
Infix#rightOperand
being null
due to the Pratt Parser matching up through the operator and then ignoring the mismatched right operand, which leads to the Infix
having only 2 elements: the left operand and the operator.@doc
and other module attributes appearing as the right operand of @type name ::
will be ignored as it is common when adding a new type above pre-existing, documented functions.Infix#leftOperand
if there are not 2-3 children for Infix
instead of a strict 3.Published by KronicDeth over 8 years ago
def
, macro
, etc] vs private [defp
, macrop
and @typep
])use Alias
call's __using__
's quote
into the call site Structure@callback
) show their name/arity and then a nest specdef
, defp
, macro
, and macrop
) shows the head of each definition under the CallDefinition.@spec
) show the type specification for a CallDefinitionname: arity
shows the name/arity for a defoverridable
.:append_first
and :to
options with the implied Function Delegation nested underneathdefexception
) show the implicit struct and nest any callback functions, such as exception/1
or message/1
.defoverridable
tracks overridable functions and is used to mark CallDefinitions are overrides.quote do end
models quote blocks so they can be injected use Alias
sites.use Alias
show use
calls.mix.bat
should be used instead of mix
- f-lombardo
System.build_info[:version]
instead of processing the formatted output of elixir --version
as the build info version is more stable - KronicDeth
Version
module - KronicDeth
Published by KronicDeth almost 9 years ago
\u
in strings and char lists for unicode mapping - KronicDeth
elixir --version
parsing: works with elixir
1.2.0 and earlier - bitgamma
Published by KronicDeth almost 9 years ago
after
, catch
, do
, else
, end
, fn
, and rescue
as keywords - KronicDeth
@doc
, @moduledoc
, and @typedoc
) are annotated as "Documentation Module Attributes" while all other module attributes are annotated as "Module Attributes".@doc
, @moduledoc
, and @typedoc
) is annotated as "Documentation Text"@callback
, @macrocallback
or @spec
are annotated as "Specification".@callback
, @macrocallback
, @spec
are annotated as "Type".@opaque
, @type
, @typep
names are annotated as "Type Parameter"when
clause of @callback
, @macrocallback
or @spec
definitions and their usage are annotated as "Type Parameters"@doc false
, @moduledoc false
, and @typedoc false
will annotate the false
with a weak warning: "Will make documented invisible to the documentation extraction tools like ExDoc.".@
. To see all module attributes, type a character after @
, then delete the character to get the full list.)@module_name
text by clicking the + to unfold.mix
version detection on Windows - KronicDeth
adjacentExpression
elements, which have now been removed to speed up error handling when comments become code.adjacentExpression
elements, which have now been removed to speed up error handling when comments become code.The fallback key attribute is DefaultLanguageHighlighterColors.FUNCTION_CALL
, which is uncolored in most themes, so users need to customize their themes to see the highlighting for "Kernel Functions", "Kernel Macros", and "Kernel.SpecialForms Macros".
The "Add Newline" and "Add Semicolon" Quick Fixes have been removed as the parsing elements they depend on have been removed in favor of JetBrains' OpenAPI error handling. If your workflow depended on these quick fixes you will have to manually add newlines or semicolons now.
Published by KronicDeth almost 9 years ago
IllegalStateException
for file delete and rename by giving ElixirFile
s descriptive names for safe-refactoring displaying file usage. - KronicDeth
~
to start a sigil that is followed later by a \n
by matching EOL
in the NAMED_SIGIL
state as a BAD_CHARACTER
- KronicDeth
Published by KronicDeth almost 9 years ago
Elixir.
, such as 'Elixir.Test'
, then intellij-elixir will annotate whether it can resolve the name to a defmodule
call in Elixir files. - KronicDeth
Cmd+Click
, Cmd+B
, Navigate > Declaration
) from Alias to defmodule
where Alias is declared.defmodule
s for fast Go To Declaration in elixir-lang/elixir and other large projects.defmodule
Published by KronicDeth about 9 years ago
Build
Compile
an individual fileMake Project
to build the entire projectNew
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
mix
lib
directory as sourcetest
directory as test sourcesRun > Elixir Mix
to setup Run Configurations to run mix
tasks.Published by KronicDeth about 9 years ago
]
- KronicDeth
.
that start with and
, or
, and not
will be lexed as a single identifier insteadand
, or
, or not
followed by another identifier.end
is allowed as a relative identifier after .
(...)
as part of matched expression in no parentheses stab signature - KronicDeth
;
- KronicDeth
<op>/<arity>
) for function captures (&<op>/<arity>
) - KronicDeth
unquote_splicing
is properly wrapped in __block__
when in stab bodies - KronicDeth
ambiguous_op: nil
- KronicDeth
Qualifier.'relative'()
vs Qualifier.'relative' ()
and Qualifier."relative"()
vs Qualifier."relative" ()
- KronicDeth
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, 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.
do
blocks (`do end) - @KronicDeth
do
block calls and normal matched expressions) - Kronicdeth
:in<nospace>dex
before vs :index
after) - @KronicDeth
!
and not
are properly wrapped in __block__
s when in stab bodies - @KronicDeth