<feed xmlns='http://www.w3.org/2005/Atom'>
<title>emacs/lisp/progmodes, branch nick.lloyd-bytecode-jit</title>
<subtitle>Emacs is the extensible, customizable, self-documenting real-time display editor. 
</subtitle>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/'/>
<entry>
<title>Allow C++ nested brace-list-entries to be better indented.</title>
<updated>2017-02-01T20:20:09+00:00</updated>
<author>
<name>Alan Mackenzie</name>
</author>
<published>2017-02-01T20:20:09+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=94ad13b93c6fc099a353c8eb27c00a68ee79a952'/>
<id>94ad13b93c6fc099a353c8eb27c00a68ee79a952</id>
<content type='text'>
This fixes bug #24431.  The key change of this bug fix is correctly analyzing
nested brace lists when the opening element stands on the same line as both
its introductory brace and an enclosing parameter list parenthesis.

* list/progmodes/cc-align.el (c-lineup-under-anchor): New line-up function.

* list/progmodes/cc-engine.el (c-looking-at-or-maybe-in-bracelist): Accept the
presence of exactly an identifier between an open parenthesis and an open
brace as evidence of the brace starting a brace list.
(c-looking-at-statement-block): New function, extracted from
c-looking-at-inexpr-block.  Enhance it to analyze inner blocks recursively
when needed.
(c-looking-at-inexpr-block): Extract new function (see above) and call it.
(c-add-stmt-syntax): Enhance, with new &amp;optional parameter, to supply the
prime syntactic symbol with a fixed anchor point.  When this is used, restrict
all added syntactic symbols to those having an anchor point on the same line.
Add, in addition to the current additional symbols, c-brace-list-entry when
needed; use c-looking-at-statement-block to determine the latter.
(c-guess-basic-syntax, CASE 9D): Use c-add-stmt-syntax rather than just
c-add-syntax, to assemble the syntactic context of a 'brace-list-entry, thus
getting, possibly, several accompanying syntactic entries.

* lisp/progmodes/cc-styles.el (c-style-alist, "gnu" style): New entry for
'brace-list-intro, namely c-lineup-arglist-intro-after-paren.

* lisp/progmodes/cc-vars.el (c-offsets-alist): Change the factory default
offset for 'brace-list-entry from 0 to c-lineup-under-anchor.

* doc/misc/cc-mode.texi (Syntactic Symbols): Amend the definition of
brace-list-intro.
(Brace List Symbols): Amend the example to show the new analysis of brace
lists when the first element comes on the same line as the opening brace.
(Misc Line-Up): Document the new line-up function c-lineup-under-anchor.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This fixes bug #24431.  The key change of this bug fix is correctly analyzing
nested brace lists when the opening element stands on the same line as both
its introductory brace and an enclosing parameter list parenthesis.

* list/progmodes/cc-align.el (c-lineup-under-anchor): New line-up function.

* list/progmodes/cc-engine.el (c-looking-at-or-maybe-in-bracelist): Accept the
presence of exactly an identifier between an open parenthesis and an open
brace as evidence of the brace starting a brace list.
(c-looking-at-statement-block): New function, extracted from
c-looking-at-inexpr-block.  Enhance it to analyze inner blocks recursively
when needed.
(c-looking-at-inexpr-block): Extract new function (see above) and call it.
(c-add-stmt-syntax): Enhance, with new &amp;optional parameter, to supply the
prime syntactic symbol with a fixed anchor point.  When this is used, restrict
all added syntactic symbols to those having an anchor point on the same line.
Add, in addition to the current additional symbols, c-brace-list-entry when
needed; use c-looking-at-statement-block to determine the latter.
(c-guess-basic-syntax, CASE 9D): Use c-add-stmt-syntax rather than just
c-add-syntax, to assemble the syntactic context of a 'brace-list-entry, thus
getting, possibly, several accompanying syntactic entries.

* lisp/progmodes/cc-styles.el (c-style-alist, "gnu" style): New entry for
'brace-list-intro, namely c-lineup-arglist-intro-after-paren.

* lisp/progmodes/cc-vars.el (c-offsets-alist): Change the factory default
offset for 'brace-list-entry from 0 to c-lineup-under-anchor.

* doc/misc/cc-mode.texi (Syntactic Symbols): Amend the definition of
brace-list-intro.
(Brace List Symbols): Amend the example to show the new analysis of brace
lists when the first element comes on the same line as the opening brace.
(Misc Line-Up): Document the new line-up function c-lineup-under-anchor.
</pre>
</div>
</content>
</entry>
<entry>
<title>Escape dash in xref rgrep regexp</title>
<updated>2017-01-29T21:01:42+00:00</updated>
<author>
<name>Dmitry Gutov</name>
</author>
<published>2017-01-29T08:41:32+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=8ba236e772b64d0bb021aa691bd7eacf4b7f3ae4'/>
<id>8ba236e772b64d0bb021aa691bd7eacf4b7f3ae4</id>
<content type='text'>
* lisp/progmodes/xref.el (xref-collect-matches): Escape dash
in REGEXP if it's the first character.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* lisp/progmodes/xref.el (xref-collect-matches): Escape dash
in REGEXP if it's the first character.
</pre>
</div>
</content>
</entry>
<entry>
<title>Say JavaScript, not Javascript</title>
<updated>2017-01-29T21:01:42+00:00</updated>
<author>
<name>Dmitry Gutov</name>
</author>
<published>2017-01-29T08:39:55+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=52feecd3c71716ca5dbade0e8e6ae2f8ebf46e54'/>
<id>52feecd3c71716ca5dbade0e8e6ae2f8ebf46e54</id>
<content type='text'>
* lisp/progmodes/js.el (js-mode-map, js-syntax-propertize)
(js-js-error, js-eval, js-set-js-context)
(js--get-js-context):
Refer to the language consistently as JavaScript.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* lisp/progmodes/js.el (js-mode-map, js-syntax-propertize)
(js-js-error, js-eval, js-set-js-context)
(js--get-js-context):
Refer to the language consistently as JavaScript.
</pre>
</div>
</content>
</entry>
<entry>
<title>lisp/*.el: Fix some warnings</title>
<updated>2017-01-29T18:34:35+00:00</updated>
<author>
<name>Juanma Barranquero</name>
</author>
<published>2017-01-29T18:34:35+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=2f90bbb5febd44bc9ff8dbff9267f535f907c307'/>
<id>2f90bbb5febd44bc9ff8dbff9267f535f907c307</id>
<content type='text'>
* lisp/battery.el (dbus-get-property):
* lisp/dired-aux.el (format-spec): Declare function.

* lisp/net/zeroconf.el (zeroconf-list-service-names)
(zeroconf-list-service-types, zeroconf-list-services):
Mark unused lexical arg.

* lisp/progmodes/hideshow.el (hs-hide-block-at-point):
* lisp/progmodes/sql.el (sql-end-of-statement):
Pass LIMIT to 'looking-back'.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* lisp/battery.el (dbus-get-property):
* lisp/dired-aux.el (format-spec): Declare function.

* lisp/net/zeroconf.el (zeroconf-list-service-names)
(zeroconf-list-service-types, zeroconf-list-services):
Mark unused lexical arg.

* lisp/progmodes/hideshow.el (hs-hide-block-at-point):
* lisp/progmodes/sql.el (sql-end-of-statement):
Pass LIMIT to 'looking-back'.
</pre>
</div>
</content>
</entry>
<entry>
<title>python-mode: Fix detection for opening blocks.</title>
<updated>2017-01-27T01:14:19+00:00</updated>
<author>
<name>Hong Xu</name>
</author>
<published>2016-12-13T01:55:25+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=7cb7a582f44db94292709d35f4f5474f891f03b0'/>
<id>7cb7a582f44db94292709d35f4f5474f891f03b0</id>
<content type='text'>
	* python.el (python-info-dedenter-opening-block-positions): There
	can't be any back-indented lines between an opening block and the
	current line.

	* python-tests.el (python-indent-electric-colon-4): Add an indent
	test case where there is one-more indented previous opening block.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	* python.el (python-info-dedenter-opening-block-positions): There
	can't be any back-indented lines between an opening block and the
	current line.

	* python-tests.el (python-indent-electric-colon-4): Add an indent
	test case where there is one-more indented previous opening block.
</pre>
</div>
</content>
</entry>
<entry>
<title>Make use of cl-loop destructuring</title>
<updated>2017-01-26T02:34:46+00:00</updated>
<author>
<name>Mark Oteiza</name>
</author>
<published>2017-01-26T02:34:46+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=44765de2005fb56c5930383d6bd1e959a0102a45'/>
<id>44765de2005fb56c5930383d6bd1e959a0102a45</id>
<content type='text'>
* lisp/progmodes/js.el (js--get-tabs): Replace extraneous bits with
destructuring.
(with-js): Add declare forms.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* lisp/progmodes/js.el (js--get-tabs): Replace extraneous bits with
destructuring.
(with-js): Add declare forms.
</pre>
</div>
</content>
</entry>
<entry>
<title>* lisp/progmodes/vhdl-mode.el: Avoid add-to-list on local vars</title>
<updated>2017-01-24T16:31:11+00:00</updated>
<author>
<name>Stefan Monnier</name>
</author>
<published>2017-01-24T16:31:11+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=52a87c894d1e2351baecaff9ff061e3b83827220'/>
<id>52a87c894d1e2351baecaff9ff061e3b83827220</id>
<content type='text'>
Require `cl' for `pushnew'.
(vhdl-scan-project-contents, vhdl-compose-wire-components)
(vhdl-uniquify): Use `pushnew' instead of `add-to-list'.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Require `cl' for `pushnew'.
(vhdl-scan-project-contents, vhdl-compose-wire-components)
(vhdl-uniquify): Use `pushnew' instead of `add-to-list'.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix low-level handling of (big) C macros.</title>
<updated>2017-01-21T15:16:49+00:00</updated>
<author>
<name>Alan Mackenzie</name>
</author>
<published>2017-01-21T15:14:15+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=de3336051ef74e0c3069374ced5b5fc7bb9fba15'/>
<id>de3336051ef74e0c3069374ced5b5fc7bb9fba15</id>
<content type='text'>
In particular, ensure that a comment detected by its syntax is not a CPP
construct marked with generic comment delimiter syntax-table text
properties.

* lisp/progmodes/cc-engine.el (c-beginning-of-macro, c-end-of-macro): Set
c-macro-cache-syntactic to nil when the cached macro changes.
(c-syntactic-end-of-macro, c-no-comment-end-of-macro)
(c-state-semi-pp-to-literal, c-state-full-pp-to-literal)
(c-state-pp-to-literal, c-parse-ps-state-to-cache)
(c-state-cache-non-literal-place, c-literal-limits, c-literal-start)
(c-determine-limit): When checking a parse syntax for a comment, check that
we're not in a CPP construct marked by syntax-table generic comment delimiter
text property.
(c-state-pp-to-literal): Change from a defsubst to a defun.

* lisp/progmodes/cc-mode.el (c-neutralize-syntax-in-and-mark-CPP): Check a
parse syntax as described above under cc-engine.el.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In particular, ensure that a comment detected by its syntax is not a CPP
construct marked with generic comment delimiter syntax-table text
properties.

* lisp/progmodes/cc-engine.el (c-beginning-of-macro, c-end-of-macro): Set
c-macro-cache-syntactic to nil when the cached macro changes.
(c-syntactic-end-of-macro, c-no-comment-end-of-macro)
(c-state-semi-pp-to-literal, c-state-full-pp-to-literal)
(c-state-pp-to-literal, c-parse-ps-state-to-cache)
(c-state-cache-non-literal-place, c-literal-limits, c-literal-start)
(c-determine-limit): When checking a parse syntax for a comment, check that
we're not in a CPP construct marked by syntax-table generic comment delimiter
text property.
(c-state-pp-to-literal): Change from a defsubst to a defun.

* lisp/progmodes/cc-mode.el (c-neutralize-syntax-in-and-mark-CPP): Check a
parse syntax as described above under cc-engine.el.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix JS regexp literal syntax propertization in expressions</title>
<updated>2017-01-17T22:33:20+00:00</updated>
<author>
<name>Tom Tromey</name>
</author>
<published>2017-01-16T21:02:45+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=aa711e0a92c30914e1c68cf39251638d4faee22d'/>
<id>aa711e0a92c30914e1c68cf39251638d4faee22d</id>
<content type='text'>
Bug#25465:
* lisp/progmodes/js.el (js-syntax-propertize): Recognize a regexp
literal after "!", "&amp;", and "|".
test/lisp/progmodes/js-tests.el (js-mode-regexp-syntax): New test.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Bug#25465:
* lisp/progmodes/js.el (js-syntax-propertize): Recognize a regexp
literal after "!", "&amp;", and "|".
test/lisp/progmodes/js-tests.el (js-mode-regexp-syntax): New test.
</pre>
</div>
</content>
</entry>
<entry>
<title>Correct c-parse-state-get-strategy for moving HERE backward into a macro.</title>
<updated>2017-01-14T12:38:43+00:00</updated>
<author>
<name>Alan Mackenzie</name>
</author>
<published>2017-01-14T12:38:43+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=a23974d6e62f660259409baadd848cf6f834d88b'/>
<id>a23974d6e62f660259409baadd848cf6f834d88b</id>
<content type='text'>
* list/progmodes/c-engine.el (c-parse-state-get-strategy): When HERE is below
its previous value, we chose strategy 'forward, and the new HERE is in a
(different) macro, ensure the returned START-POINT is not above the start of
the macro.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* list/progmodes/c-engine.el (c-parse-state-get-strategy): When HERE is below
its previous value, we chose strategy 'forward, and the new HERE is in a
(different) macro, ensure the returned START-POINT is not above the start of
the macro.
</pre>
</div>
</content>
</entry>
</feed>
