Age | Commit message (Collapse) | Author |
|
Add current module to non external functions calls.
Also improves finding record and macro definitions.
|
|
The right order is defined by find-tag-tag-order which is a list of
predicate functions. Tags matched by the first function shall be
visited first. After that tags matched by the seconds function shall be
visited and so on.
Previous behavior was to visit tags that match any of the functions in
the order they appear in the TAGS file.
Reported by Dan Gudmundsson.
|
|
* dgud/tools/emacs-xref/PR-1051:
Add xref support in erlang.el
Conflicts:
lib/tools/emacs/erlang.el
|
|
In GNU Emacs 25 xref will be introduced. It is a framework for cross
referencing commands, in particular commands for finding definitions.
It does not replace etags. It rather resides on top of it and
provides user-friendly commands. The idea is that the user commands
should be the same regardless of what back-end does the actual finding
of definitions.
Add to the xref commands awareness of the module:tag syntax in a
similar way that is already done for the old etags commands.
Xref completion support is not included in this commit.
Remove all compilation warnings for GNU Emacs 24.5 and current 25
(4ffec91).
Remove XEmacs incompatibility in
erlang-font-lock-exported-function-name-face.
Add file erlang-test.el with a single unit test.
Add TAGS to .gitignore.
|
|
Inside type specs, line-initial commas shall align with open curly
braces. This also applies to record definitions with type specs for
the fields.
For example:
-type foo() :: { a :: integer()
, b :: integer()
}.
For type specs for functions, the commas shall align with the opening
parenthese. So do a closing parenthese when put on a new line.
For example:
-spec foo( X :: integer()
, Y :: integer()
) -> integer().
This does not affect coding styles that don't put commas at the
beginning of lines.
|
|
* erlang/pr/1006:
Use define-derived-mode to define erlang-mode
|
|
Remove some things that define-derived-mode does for us.
Also, derive erlang-mode from prog-mode, so that a user that has added
customizations meant for all programming language major modes will
enjoy those in Erlang mode as well.
|
|
|
|
|
|
In the Emacs Erlang mode, typing "->" will usually automatically add a
newline, which is usually what you want when writing a function, but
not when writing a type spec. Therefore, there is a check for not
adding the newline when the current line starts with -spec or -type.
This change adds -callback to that check, since it is usually written
the same way as type specs.
|
|
|
|
|
|
Fix "Unbalanced parentheses" error when indenting particular map
constructs. Add new test cases for this fix.
To prevent infinite looping when the programmer mistakenly enters
incorrect syntax, detect cases where erlang-partial-parse fails to
advance when called within a loop, and raise an "Illegal syntax"
error.
|
|
The tag completion code was changed in GNU Emacs 23.1 in a way that
broke erlang.el tag completion. This commit fix that for Emacs 23.1 and
later.
Add progress report while building completion table.
Add completion of module_info/0 for all modules.
Add lib/tools/emacs/*.elc to .gitignore.
|
|
|
|
The dummy BIF exports 'erlang:bitstr_to_list/1' and 'erlang:list_to_bitstr/1'
seem to have appeared as a result of a copy-paste error and are now removed.
|
|
* technomancy/emacs-autoload:
Activate Emacs erlang-mode for .app files inside ebin directory.
Add more file types to Emacs auto-mode-alist.
Add Emacs autoloads for .erl and .app.src.
OTP-11788
|
|
|
|
|
|
|
|
Use word boundaries in some regex matching to avoid recognizing words that
begin with keywords as keywords themselves, for example avoid recognizing a
function named catcher as the catch keyword. Add a regression test for this
problem.
|
|
|
|
vinoski/emacs-fixes
|
|
vinoski/emacs-fixes
|
|
vinoski/emacs-fixes
|
|
Fix an indentation error being returned by scan-sexp, and add a new
indentation test case for the error.
|
|
|
|
In erlang.el, add a line to evaluate the cl package at compile time so that
the use of the block macro (such as on line 3750), which is an alias for
cl-block, is evaluated correctly when erlang.el is compiled. Also modify
comparisons against (point) in functions erlang-electric-lt and
erlang-after-bitsyntax-close so that typing the characters '<' and '>'
(without the quotes) at the beginning of a buffer does not cause errors.
Thanks to user leo2007 in the #erlang channel on IRC for reporting these
problems and providing fixes.
|
|
In the emacs erlang-mode the function erlang-get-function-arity failed to
return a correct arity value for functions with literal binaries as
parameters, for example:
function(<<Bin:20/binary>>) -> Bin.
Fix erlang-get-function-arity to recognize binary parameters correctly.
|
|
Change emacs erlang-mode to recognize EEP37 named funs so they're indented
properly. Specifically, modify erlang-partial-parse to allow for an
optional Erlang variable name to appear between the "fun" keyword and the
opening parenthesis of its argument list.
|
|
into maint
* puzza007/emacs_iodata_nonempty_string_builtin_types/OTP-11394:
Add iodata, nonempty_string to built-in type highlighting for emacs
|
|
These built-in types were missing from emacs highlighting
|
|
files as delimiters.
While working on a tool that processes Erlang code and testing it against this repo,
I found out about those little sneaky 0xff. I thought it may be of help to other
people build such tools to remove non-conforming-to-standard characters.
|
|
In Emacs it is possible to remotely edit a file, by opening for
example /ssh:somehost.com:/path/to/file.erl. In Emacs, the feature
that makes this possible, is called TRAMP. When compiling such a file,
by typing C-c C-k, an inferior Erlang shell is opened on the remote
host, but the compilation expression that was evaluated in the remote
Erlang shell was:
c("/ssh:somehost.com:/path/to/file", [...]).
which resulted in a "no such file or directory" error.
This commit changes the compilation expression into:
c("/path/to/file", [...]).
for files opened remotely via TRAMP. The file name is adjusted
similarly when compiling .yrl and .xrl files.
In a buffer opened remotely, the Elisp function buffer-file-name
returns the full path with TRAMP syntax. In this example it would
be "/ssh:somehost.com:/path/to/file.erl". A new function,
erlang-local-buffer-file-name, has been introduced, which peels off
the TRAMP syntax on remotely opened files, while for locally opened
files, it just calls buffer-file-name.
|
|
For example:
[ one
, two
, three
]
This does not affect coding styles that don't put commas at the
beginning of lines.
|
|
|
|
|
|
Added: binary_to_integer/1,2, integer_to_binary/1,2
|
|
|
|
* lukas/tools/emacs_add_error_bif/OTP-10774:
Update all bif highlighting for emacs
|
|
The single quote in $\' does not begin an atom. Change the regexp to
treat it just like $\". Previously this code would be incorrectly
highlighted:
foo() ->
Quote = $\',
%% This gets coloured as an atom, not as a comment
...
|
|
All bifs should now be highlighted correctly. Also added
a testcase which will check for any future bif additions
and deletions.
|
|
Add a separate face for exported functions to erlang mode so that they
are distiguishable at a glance. By default, the face is identical to
that of normal functions and there is also a configuration variable to
inhibit the face in case running this on a low-performance machine is
too slow.
|
|
* gp/make_erlang_mode_elpa_friendly:
Make erlang-mode more compatible with package.el
OTP-10465
|
|
Conflicts:
lib/diameter/autoconf/vxworks/sed.general
xcomp/README.md
|
|
|
|
|
|
Like this: 'atom$'. In that example, the last single quote should be
recognised as ending the atom. This needs a font-lock workaround
similar to the one for strings.
|
|
* mh/remove-compilation-error-regexp:
Remove Erlang-specific compilation error regexp
OTP-10168
|
|
In some situations, the indentation of record fields in Emacs was
strange. This example below shows how Emacs previously would indent
two similar pieces of code very differently:
some_function_with_a_very_long_name() ->
#'a-long-record-name-like-it-sometimes-is-with-asn.1-records'{
field1=a,
field2=b}.
x() ->
#some_record_name{
field1=a,
field2=b}.
This changes the indentation to be like below for both cases:
some_function() ->
#some_record{
field1=a,
field2=b}.
|