Age | Commit message (Collapse) | Author |
|
|
|
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.
|
|
Previously there were only two options: either the EUnit test file was
placed directly within the test directory or within the same directory
as the source file. Now a list of candidate locations are supported.
This way more than two alternative locations are supported as well as
arbitrarily deep directory structures (i.e. test/eunit/x_tests.erl).
The default behaviour is still the same, but it's possible to specify
locations by setting the following two variables:
erlang-eunit-src-candidate-dirs
erlang-eunit-test-candidate-dirs
|
|
* dgud/emacs-catch-improvements:
Improved indentation of old catch.
Added more type highlighting and fixed record indentation with types.
|
|
An example that didn't work previously.
case Foo of
{ok, X} ->
ok;
_ ->
catch file:close(FD)
end.
|
|
Type highlighting reported by Jay Nelson
non_neg_integer() will highlight purple but pos_integer() does not.
Closing record indentation problem reported by Maxim Treskin:
-record(state, {
sequence_number = 1 :: integer()
}).
|
|
|
|
|
|
Hopefully this covers at least some of the common cases and makes the
flymake support more usable as is. The purpose of including the ebin
directory is to support things like behaviours and parse transforms.
|
|
|
|
|
|
When given the option {builtins,true} Xref now adds calls to operators.
|
|
* mh/escript-erlang-mode:
Associate files using interpreter "escript" with Erlang mode
|
|
* cb/emacs-eunit-run-current-test:
Add Emacs EUnit utility feature: run current test function.
|
|
* mh/fix-record-indentation:
Fix indentation of records with line breaks inside lists
|
|
* mh/inferior-erlang-cmd-uniq:
inferior-erlang: specify command to run, uniquify buffer names
|
|
* mh/erlang-mode-imenu-arity:
Let imenu distinguish functions by arity
|
|
Create and assign the erlang-mode keymap to erlang-mode-map once
erlang.el is loaded, not the first time it is used. This way of doing
it follows the Emacs Lisp convention described at
http://www.gnu.org/software/emacs/manual/html_node/elisp/Tips-for-Defining.html
and also makes it easier for users to customize the keymap.
Remove the now unneeded functions erlang-keymap-init and
erlang-mode-commands.
Also move the definition of inferior-erlang-use-cmm, so it is
available when defining erlang-mode-map.
|
|
Make the function names used by M-x imenu contain the function arity
as well as the name. This makes it possible to jump to all functions
of the same name, as opposed to only the one that is defined first.
For example, in the following module there is now a way to jump
directly to foo/1:
-module(foo).
foo() ->
ok.
bar() ->
error.
foo(A) ->
{ok, A}.
|
|
Trying to indent this piece of code by hitting TAB on each line:
foo() ->
[#foo{
foo = foo}].
used to cause an error. Fix by ignoring errors when trying to skip
backwards from a record.
Also add this test case to test.erl.orig and test.erl.indented.
|
|
Add a new feature to the command inferior-erlang: when called with a
prefix argument, prompt for the command to execute to start the Erlang
shell. When possible (i.e., in Emacs 23 and later), allow tab
completion as in a normal shell.
Also create the shell buffer in such a way that, if
uniquify-buffer-name-style is not nil and several Erlang shell buffers
are started in different directories, the names of those buffers
reflect their working directories instead of being *erlang*,
*erlang*<2>, etc.
|
|
A file whose first line contains "#!/usr/bin/env escript" should be
opened in erlang-mode, even if its name doesn't end in ".erl". Add an
entry to interpreter-mode-alist to that effect.
|
|
This determines the current test function under point (cursor), whether the active buffer
contains a test module (foo_tests) or the module itself (foo), then compiles the source
module (and test module if present) and runs that test function.
Since this added a third testing feature, there was some natural duplication that needed
to be factored out. The notion of 'compile and run tests' was decoupled from exactly
which tests should be run. The definitions of default keybindings were converted to a list
for clarity and conciseness.
|
|
* dgud/emacs-21-fix:
Remove usage of 'font-lock-preprocessor-face' if not available
|
|
* rd/erlang-eunit:
erlang-eunit.el: Require cl, as it is used
|
|
i.e. in emacs-21
|
|
erlang-eunit.el (part of erlang-mode) uses "flet", which is only available
if emacs package cl was loaded. The docs of the CL package suggest that
'...packages installed in Emacs must not load "CL" at run time.' We
honour this by using eval-when-compile.
This fixes warnings when byte-compiling erlang-eunit.el with:
emacs -batch -f batch-byte-compile erlang-eunit.el
The warning fixed is:
In erlang-eunit-compile-and-run-tests:
erlang-eunit.el:146:4:Warning: `(save-some-buffers (&optional any) nil)'
is a malformed function
This bug was reported initially against Ubuntu packages, see
https://bugs.launchpad.net/bugs/541893 for reference
Signed-off-by: Ralf Doering <[email protected]>
|
|
* dgud/emacs-bugfixes:
Fix another -spec() problem
Add missing elisp files to the the release target
Fix electric semi-colon and tuples inside lists
OTP-8530 dgud/emacs-bugfixes
Fixed emacs-mode installation problems and some other minor issues.
|
|
|
|
|
|
|
|
Xref has been updated to use the re module instead of the deprecated regexp
module.
|
|
A race condition affecting Cover has been removed.
|
|
|
|
|
|
* dgud/emacs-mode:
Added the old style skeletons, and a variable to change.
Move code skeletons to a separate file.
OTP-8446 dgud/emacs-mode
|
|
|
|
* egil/lcnt:
Add test suite for lcnt in tools
Add lcnt:rt_opt/1 bindings to erts_debug
Add runtime option to enable/disable lcnt stats
Add auto width on string output
Add lcnt documentation
Add lock profiling tool
OTP-8424 Add lock profiling tool.
The Lock profiling tool, lcnt, can make use of the internal lock
statistics when the runtime system is built with this feature
enabled.
This provides a mechanism to examine potential lock bottlenecks
within the runtime itself.
- Add erts_debug:lock_counters({copy_save, bool()}). This option
enables or disables statistics saving for destroyed processes and
ets-tables. Enabling this might consume a lot of memory.
- Add id-numbering for lock classes which is otherwise undefined.
|
|
|
|
Runtime options for copy_save.
|
|
|
|
Documentation for the lock profiling tool
|
|
The Lock profiling tool, lcnt, can make use of the internal lock statistics
when the runtime system is built with this feature enabled.
This provides a mechanism to examine potential lock bottlenecks within
the runtime itself.
|
|
|
|
Use the updated skeletons from the Erlware Mode.
|
|
|
|
Used in records or tuple creation:
-record(record3, {a = 8#42423 bor
8#4234,
b = 8#5432
bor 2#1010101
c = 123 +
234,
d}).
and in functions calls
call(2#42423 bor
#4234,
2#5432,
other_arg),
|