Age | Commit message (Collapse) | Author |
|
vinoski/emacs-fixes
|
|
vinoski/emacs-fixes
|
|
|
|
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
|
|
This defvar was removed in a87a9699735b0a25f99397fba9576f5756da54d3 which made
eunit fail on running tests in 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.
|
|
* mh/line-initial-commas/OTP-11242:
Inside parentheses, line-initial commas align with the open parenthesis
|
|
|
|
For example:
[ one
, two
, three
]
This does not affect coding styles that don't put commas at the
beginning of lines.
|
|
|
|
The autoload cookies are used when erlang-mode is installed as an
Emacs package. In this case, erlang-start will not be loaded at Emacs
startup; only the forms marked with ;;;###autoload will be extracted
and made available.
|
|
The dependency was incorrect, as the package is called flymake, not
flymake-mode. It also used to suggest a newer version of flymake than
the one that comes with Emacs, even though the Erlang mode works well
with the older version.
Removing the dependency instead of depending on version 0.3 (the one
shipped with Emacs), since the downloadable version of package.el for
Emacs 23 and earlier doesn't recognise Emacs built-in libraries as
packages. (Thanks to Steve Purcell for pointing this out.)
|
|
|
|
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
|
|
|
|
|
|
* mh/emacs-test-indentation/OTP-10226:
Add test_indentation target to lib/tools/emacs/Makefile
|
|
Automatically indent test.erl.orig, save to test.erl, and compare to
test.erl.intended.
|
|
|
|
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}.
|
|
The purpose of this regexp is to ensure that, when invoking the Erlang
compiler inside Emacs through M-x compile, any error messages be
turned into links jumping to the right line in the right source file.
However, it seems like this works out of the box in modern Emacsen,
and furthermore, using a non-standard regexp inhibits jumping to a
certain column when this is provided by the compiler.
|
|
OTP-10106
OTP-10107
|
|
Package.el and Emacs package repositories (like ELPA or Marmalade
place some requirements onto packages which are uploaded to them. This
commit does minor cosmetic changes which makes it easier to create
appropriate package file for those repositories.
|
|
Update erlang-flymake to recognize the "deps" folder as an include
directory. This makes erlang-flymake compatible with the rebar
dependency management tool's default folder structure, which puts
included dependencies in "deps". Considered additionally adding
deps/*/include, deps/*/ebin, and deps/*/src as include directories,
but erlc's -I command line option does not support wildcards.
|
|
This reverts commit e21ff9b0b69219ab3853be7e80813156113152b7.
|
|
|
|
|
|
If visiting a .yrl or .xrl file in emacs with erlang-mode,
then the `erlang-compile' function (normally bound to C-c C-k),
now knows how to compile yecc and leex files, and then, if that
compilation succeeds, also compiles the resulting .erl files.
Also introduce a `erlang-compile-command-function-alist'
to make it possible to hook in other functions for computing
compilation commands/expressions, depending on file name.
|
|
The Erlang mode for Emacs inserts a newline after every "->", which
saves you one keystroke when writing a function, but that is
inappropriate when writing a type spec, as you'd normally keep the
spec on one line. This change inhibits the automatic insertion when
the current line starts with "-spec" or "-type".
|
|
|
|
Emacs has a facility for setting options on a per-file basis based on
comments in the source file. By default, all options are considered
"unsafe", and the user is queried before the variable is set. This
patch declares the variables erlang-indent-level, erlang-indent-guard
and erlang-argument-indent to be safe, if the value specified in the
source file is valid.
Such declarations usually look like this:
%% -*- erlang-indent-level: 2 -*-
and appear on the first line of the file.
|
|
A string whose last character is a dollar sign used to make the syntax
highlighter believe that the string never ends, breaking highlighting
of following code:
-vsn("$Revision: 42 $").
And the double quote as a character constant with a (superfluous)
backslash used to make the syntax highlighter believe that a new
string started:
foo() ->
$\".
This change fixes both problems by adding two regexps to
font-lock-syntactic-keywords in erlang-font-lock-init.
One case that is still broken is when a multi-line string ends with a
dollar sign:
bar() ->
"This multi-line string
ends with a $".
baz() ->
this_gets_incorrectly_highlighted.
|
|
Follow the GNU recommendation of not introducing runtime
dependencies on the Common Lisp package in ELisp packages
that will be distributed for widespread use.
In practice this means it's ok to use cl macros but not
functions.
|
|
This determines the most recent invocation of EUnit and runs it
again -- whether one test or all tests in a module were run (and
if all a module's tests were run, whether cover compilation was
involved). This can be especially handy when one test is being
run repeatedly, eliminating the need to position the cursor in
the desired test just to run it.
Default keybinding: C-c C-e l
|
|
If the variable 'erlang-eunit-autosave' is non-nil, buffers will be
automatically saved just before running tests -- the "Do you want
to save?" prompt will be inhibited. This can be useful, reducing the
save-compile-load-test cycle to just one keychord.
|
|
Add a number of features to the emacs mode which make it easier to
work with eunit test cases while keeping track of code coverage.
* C-cC-ec:
Compile the module under test for code coverage analysis, run tests
and show the results of the coverage analysis in a new buffer.
* C-c-C-ev:
Compile the current module for code coverage analysis.
* C-cC-ea:
Show the results of the coverage analysis in a new buffer.
|