Hideshow has defaults that are overridden if we look for derived modes
in hs-special-modes-alist. For instance, in lisp-interaction-mode
we'll choose a lookup based on parent modes, and that overrides the
default (bug#43032).
This reverts a415179b56.
* lisp/progmodes/octave.el (octave-mode-syntax-table): Fix
fontification of single quotes in inferior octave mode (bug#25517).
It looks like the problem is that octave-mode-syntax-table sets single
quotes as punctuation even though GNU Octave's manual says single quotes
are string syntax [1].
[1]:
https://www.gnu.org/software/octave/doc/interpreter/String-Objects.html
* lisp/progmodes/grep.el (grep-find-command): Add the cons type to
the defcustom, and document it (bug#36113). (It has always been a
valid value for the variable.)
* lisp/comint.el (comint-highlight-input): New variable (bug#32344).
(comint-send-input): Use it.
* lisp/progmodes/python.el (inferior-python-mode): Set it.
In Elisp mode, ElDoc will try the variable's docstring first, then the
function signature. If the former doesn't have one, don't hide the
latter.
* lisp/progmodes/elisp-mode.el (elisp-eldoc-var-docstring): If no
symbol docstring, don't declare any.
* lisp/progmodes/subword.el (c-subword-mode): Clarify that this
obsolete function alias should not be removed just yet. There is a
copy of this definition in cc-cmds.el, obsolete since 24.3, and it is
better to delete both at the same time.
* test/lisp/progmodes/cperl-mode-tests.el: Adjust for `perl-mode`.
(cperl-test-ppss): Rename from `cperl-test-face` and change return value.
(cperl-mode-test-bug-42168): Test the `syntax-ppss` state rather than
the font-lock faces, so it works for both `perl-mode` and `cperl-mode`.
* lisp/progmodes/compile.el (compilation-next-single-property-change):
Parse whole buffer at once (bug#42806).
Also remove the comment that mentioned that it is an option to do it
in one go as we now actually start doing. As the existence of that
comment suggested, there is not really a reason to process the buffer
in small chunks. On the contrary, processing the output in arbitrary
units can result in certain constructs not being recognized because
they begin in one arbitrary chunk, while ending in another.
* lisp/progmodes/project.el: Depend on xref. Bump the version.
* lisp/progmodes/xref.el: Remove 'project' from the list of
dependencies. Depending on Emacs 26.3 already ensures that some
version is available. Bump the version.
(xref--process-file-region): Move from project.el with a rename.
Update the sole caller.
(xref-backend-references): Make compatible with old project.el.
Update the docstring.
* lisp/progmodes/cperl-mode.el (cperl-find-pods-heres):
Recognize {$a++ / $b} correctly as division. (Bug#42168)
* test/lisp/progmodes/cperl-mode-tests.el: New file with test
verifying the fix.
* lisp/progmodes/compile.el
(compilation-error-regexp-alist-alist): Prior to this patch the
line that contains "from a.h:1:0," was seen as INFO and the line
that contains "from a.c:1:" was seen as a WARNING. This patch
makes them both INFO (bug#17826).
These comments are unnecessary because the doc-strings that follow
already cover the same ground, while being more concise. These
comments were also prefixed with too many semicolons, causing them
to be treated as outline headings.
* lisp/progmodes/sql.el (sql-mode): Move all the syntax setup
stuff here (bug#35646). Add handling of -* and /- from Kristian
Hole <kristian@hole.priv.no>.
* lisp/progmodes/sql.el (sql-product-alist): The \ character is an
escape character in mysql (bug#37459).
(sql-mode): Changes the example from the incorrect use of
punctuation rule, to the escape character rule.
Copyright-paperwork-exempt: yes
* progmodes/python.el (python-indent--calculate-indentation): Add an
additional indentation point to match indentation of previous line in
a multiline string. Then Tab iterates between 0, the start indentation
level and the previous line level (bug#37726).
assoc-delete-all is not available for users who have installed
project.el via ELPA on older Emacs versions (bug#42668).
* lisp/progmodes/project.el
(project-remember-project, project--remove-from-project-list):
Replace assoc-delete-all with equivalent alternatives.
* lisp/progmodes/cperl-mode.el (cperl-find-pods-heres): cperl-mode
in the master branch wrongly uses the first occurrence of "HERE"
to terminate the string, resulting in badly fontified / indented
code which follows (bug#42251).
* lisp/progmodes/cperl-mode.el (cperl-etags): This fails with
(wrong-type-argument stringp cperl-sub-regexp). The error came
with incorporating Jonathan Rockway's work (bug#42355).
Copyright-paperwork-exempt: yes
* lisp/progmodes/sh-script.el (sh-font-lock-keywords-var): Fontize
$(...) slightly better (bug#42417). Instead of just fontizing the
first word in the expression, fontize until the closing
parenthesis. This doesn't work well if you have nested $(...)
expressions.
* lisp/progmodes/project.el (project-kill-buffer-conditions):
Replace the project-kill-buffers-ignores user option.
(project--kill-buffer-check): New function.
(project--buffers-to-kill): New function.
(project-kill-buffers): Use them. Add the NO-CONFIRM argument.
* lisp/progmodes/project.el (project--other-place-command):
Bind switch-to-buffer-obey-display-actions to t, so that
project-other-window-command and friends can affect
project-switch-to-buffer.
* lisp/progmodes/project.el (project-other-window-map,
project-other-frame-map, project--other-place-command,
project-other-window-command, project-other-frame-command,
project-other-tab-command): Add these functions and maps.
* lisp/progmodes/project.el: Bind project-other-window-command to C-x
4 p, project-other-frame-command to C-x 5 p and
project-other-tab-command to C-x t p (bug#42210).
* lisp/progmodes/project.el (project--read-project-buffer): New
function extracted from project-switch-buffer.
* lisp/progmodes/project.el (project-switch-buffer): Instead of
unconditionally reading a project buffer from the user, add
buffer-or-name argument, and populate it using
project--read-project-buffer when called interactively. Update
docstring.