Barry O'Reilly [Tue, 8 Oct 2013 14:05:40 +0000 (10:05 -0400)]
* Makefile: New file to provide 'make check' tests
* adjust-parens-tests.el: New tests
(apt-near-bob-test): Test indenting near BOB
(apt-indent-dedent-test): Test same case described in Commentary
* adjust-parens.el: Fix bug when near BOB or EOB. Fix compiler
warning due to using defvarred prefix-arg as lexical var.
Stefan Monnier [Mon, 7 Oct 2013 18:55:38 +0000 (14:55 -0400)]
* coffee-mode.el: Tame electric-indent-mode.
(coffee-mode): Derive from prog-mode. Set electric-indent-inhibit.
(coffee-mode-map, coffee-mode-syntax-table): Move initialization into
declaration.
(coffee-comment-dwim): Remove.
Dmitry Gutov [Mon, 7 Oct 2013 03:41:11 +0000 (06:41 +0300)]
Add new element to the archive-contents vector, and put
each package's URL in it (Bug#13291).
* archive-contents.el (archive--simple-package-p): Return an
additional element, EXTRAS alist, with key :url.
(archive--process-simple-package): Accept additional argument,
pass it through to the return value.
(archive--alist-to-plist, archive--plist-to-alist): New functions,
code copied from package.el.
(archive--process-multi-file-package): Extract extra fields to an
alist, include it in the return value.
(archive--write-pkg-file): Accept additional argument, unwrap that
alist into a plist, and append it to the `define-package' form.
(archive--html-make-pkg): Pass the value of :url in the `extras'
element to `archive--insert-repolinks'.
(archive--insert-repolinks): Instead of extracting the value of
"URL" manually, accept additional argument with that value.
Andrew Hyatt [Sun, 15 Sep 2013 23:52:34 +0000 (19:52 -0400)]
2013-09-15 Andrew Hyatt <ahyatt@gmail.com>
* websocket.el (websocket-mask-frames, websocket-encode-frame,
websocket, websocket-send): Get rid of
`websocket-mask-frames' variable, which was a mistake, and
make masking mandatory for clients and forbidden for
servers.
* websocket-test.el (websocket-encode-frame,
websocket-outer-filter): Alter tests to pass new argument
for `websocket-encode-frame'.
* websocket.el (websocket-close, websocket-open,
websocket-server-accept): Only call the on-close callback on
process state change if the process is now closed or
similar, and always call the on-close callback from
`websocket-close'
* websocket-test.el (websocket-close): Add an on-close callback
which the `websocket-close' method now expects.
* magit-functiona-test.el: Assert on ready-state, and increase
the sleep time for the wss test.
Stefan Monnier [Sat, 14 Sep 2013 03:12:20 +0000 (23:12 -0400)]
* GNUmakefile: Obey a .elpaignore file in a package's root directory.
* admin/update-archive.sh: Don't copy .elc files to build/packages.
* admin/archive-contents.el: Improve error message for invalid versions.
* externals-list: Change auctex to be external.
* copyright_exceptions: Update to adapt to AUCTeX-11.87.
* package/auctex: Move it to an external branch, updated to 11.87.
* diff-hl-define-bitmaps: Add new bitmaps.
* diff-hl-fringe-bmp-from-pos, diff-hl-fringe-bmp-from-type: New functions.
* diff-hl-fringe-spec: Include fringe-bmp-function in the hash key.
Stefan Monnier [Fri, 6 Sep 2013 02:47:32 +0000 (05:47 +0300)]
* packages/js2-mode/js2-mode.el: Remove unused variables. Use posix
character classes. Do a bit of CSE simplification.
(js2-parse-highlight-member-expr-node): Flip test order to simplify code.
(js2-re-search-forward, js2-re-search-backward): Don't quote code.
(js2-echo-help): Defalias applies to symbol, not functions.
* Use one diff-hl-dired-process-buffer per dired buffer.
* Use `vc-responsible-backend', remove `diff-hl-dired-files'.
* Highlight subdirectories depending on files they contain.
Extract js2-parse-function-stmt and js2-parse-function-expr
* Fix printing of js2-function-nodes with member-expr.
* Prohibit unnamed function expressions where statement is expected.
* Omit the case of "random-member-expr", whatever that is.
Anyone who misses it is welcome to file an issue.
Dmitry Gutov [Thu, 29 Aug 2013 22:58:33 +0000 (01:58 +0300)]
Implement two-token lookahead
* Use `js2-token' defstruct to store token info.
* Cache tokens in a vector buffer `js2-ti-tokens'.
* Obviously, a deoptimization, gives us performance hit:
- ~60% slower in interpreted mode (Emacs 24.3.50.1).
- ~50% slower in compiled mode.
* `mod' is actually slightly faster than `logand' for our usage.
* Optimizations tried:
- Cache the current token.
- Cache the current token type.
- Reuse the token structs, instead of creating new one each time.
- Set the js2-token struct's type to `vector' or `list', disabling
the usage of the tag symbol, and thus getting rid of type checking.
Gives us ~15% improvement in interpreted mode, but no significant
change in compiled mode.
Joao Tavora [Thu, 29 Aug 2013 09:20:31 +0000 (10:20 +0100)]
fix: more idiomatic elisp, better docstrings, less byte-compiler warnings
By Stefan Monnier, with original commentary.
"Here's an untested patch of cleanups, found partly via compilation using
lexical-binding and partly via checkdoc-current-buffer (and
occasionally by stumble-upon happenstance)."
Stefan Monnier [Thu, 22 Aug 2013 18:53:18 +0000 (14:53 -0400)]
* register-list.el: Use lexical-binding. Remove redundant :groups.
(register-list-preserve-pos): Don't eval `force-line'. Use forward-line
to better match line-number-at-pos's behavior.
(register-list-refresh): Don't use the line number that happens to be current
during macro-expansion.
(register-list): Remove unused arg `reg-alist'. Use dolist. Use a closure
rather than `(lambda ...).
(register-list-edit-value): Remove unused var `new-val'.