* lisp/progmodes/scheme.el (scheme-mode): Remove incorrect text from docstring.
* lisp/progmodes/prolog.el (prolog-mode): Remove incorrect text from docstring.
* lisp/emacs-lisp/lisp-mode.el (lisp-mode, lisp-interaction-mode, emacs-lisp-mode):
Remove incorrect text from docstring.
(python-shell--save-temp-file): New function.
(python-shell-send-string): Use it. Remove `msg' arg. Don't assume
`string' comes from the current buffer.
(python-shell-send-string-no-output): Remove `msg' arg.
(python--use-fake-loc): New var.
(python-shell-buffer-substring): Obey it. Try to compensate for the
extra coding line added by python-shell--save-temp-file.
(python-shell-send-region): Use python-shell--save-temp-file and
python-shell-send-file directly. Add `nomain' argument.
(python-shell-send-buffer): Use python-shell-send-region.
(python-electric-pair-string-delimiter): New function.
(python-mode): Use it.
(ruby-smie--backward-token): Tokenize heredocs as semicolons.
* test/automated/ruby-mode-tests.el: Remove outdated comment.
* test/indent/ruby.rb: Add a statement on the line after heredoc.
smie-indent-virtual rather than only for hanging tokens.
(smie--next-indent-change): New helper command.
* lisp/progmodes/ruby-mode.el (ruby-smie--rule-parent-skip-assign): Remove.
(ruby-smie-rules): Use smie-rule-parent instead.
(python-shell-get-process): Use it.
(python-shell-send-string): Always use utf-8 and add a cookie to tell
Python which encoding was used. Don't split-string since we only care
about the first line. Return the temp-file, if applicable.
(python-shell-send-region): Tell compile.el how to turn locations in
the temp-file into locations in the source buffer.
specific in what the first arg can be: a non-keyword word,
string/regexp/percent literal opener, opening paren, or unary
operator followed directly by word.
* test/automated/ruby-mode-tests.el (ruby-toggle-block-to-brace): Fix
the test, in respect to adding the space after the curly.
(prolog-align-comments-flag, prolog-indent-mline-comments-flag)
(prolog-object-end-to-0-flag, prolog-electric-newline-flag)
(prolog-electric-tab-flag, prolog-use-prolog-tokenizer-flag):
Remove vars, they do not apply any more.
(prolog-mode-abbrev-table): Remove redundant declaration.
(prolog-upper-case-string, prolog-lower-case-string): Remove.
(prolog-use-smie): Remove.
(prolog-smie-rules): Add indentation rule for the if-then-else layout
supported by prolog-electric-if-then-else-flag.
(prolog-mode-variables, prolog-menu): Use setq-local.
(prolog-mode-keybindings-edit): Don't rebind M-C-p and M-C-n.
Remove binding to `Backspace' since this key doesn't exist anyway.
Remove bindings for electric self-inserting keys.
(prog-mode): Assume it's defined.
(prolog-post-self-insert): New function.
(prolog-mode): Use it.
(prolog-indent-line, prolog-indent-level)
(prolog-find-indent-of-matching-paren)
(prolog-indentation-level-of-line, prolog-goto-comment-column)
(prolog-paren-is-the-first-on-line-p, prolog-region-paren-balance)
(prolog-goto-next-paren, prolog-in-string-or-comment)
(prolog-tokenize, prolog-inside-mline-comment)
(prolog-find-start-of-mline-comment): Remove functions.
(prolog-find-unmatched-paren, prolog-clause-end)
(prolog-guess-fill-prefix, prolog-get-predspec): Use syntax-ppss.
(prolog-electric--if-then-else): Rename from
prolog-insert-spaces-after-paren; use prolog-electric-if-then-else-flag.
(prolog-tokenize-searchkey): Remove const.
(prolog-clause-info): Use forward-sexp.
(prolog-forward-list, prolog-backward-list, prolog-electric-delete)
(prolog-electric-if-then-else): Remove commands.
(prolog-electric--colon): Rename from prolog-electric-colon; adapt it
for use in post-self-insert-hook.
(prolog-electric--dash): Rename from prolog-electric-dash; adapt it
for use in post-self-insert-hook.
(prolog-electric--dot): Rename from prolog-electric-dot; adapt it
for use in post-self-insert-hook.
(prolog-electric--underscore): Rename from prolog-electric--underscore;
adapt it for use in post-self-insert-hook.
capitalization. Use :visible instead of :active. Fix
`ruby-indent-exp' reference. Add menu items for the generic
commands that are used with SMIE.
(ruby-do-end-to-brace): Insert space after `{'.
with parameters" example. Simplify the "is it block or is it
hash" check, but also make it more thorough.
* test/indent/ruby.rb: Fix syntax error in the latest example.
* lisp/progmodes/ruby-mode.el (ruby-smie-rules):
Remove corresponding workaround. Fix indentation rule of ";" so it
also applies when ";" is the parent.
TODO. Add "." after " @ ".
(ruby-smie--at-dot-call): New function. Checks if point at method
call with explicit target.
(ruby-smie--forward-token, ruby-smie--backward-token): Prepend "."
to the method name tokens when it precedes them.
(ruby-smie--backward-id, ruby-smie--forward-id): Remove.
(ruby-smie-rules): Add rule for indentation before and after "."
token.
`smie-down-list'.
(ruby-smie--args-separator-p): Check that there's no newline
between method call and its arguments.
(ruby-smie-rules): Handle new cases: curly block with and without
parameters, hash surrounded with parens, block passed to
paren-less method call.
* test/indent/ruby.rb: New examples for indentation of blocks. Example
of hash inside parens that inflooped before this commit.
* progmodes/cc-engine.el (c-backward-over-enum-header): parse
commas.
* progmodes/cc-fonts.el (c-basic-matchers-after): Remove comma
from a "disallowed" list in enum fontification.
* progmodes/cc-engine.el (c-forward-decl-or-cast-1): (Just after
CASE 2) Remove the check for the absence of a suffix construct
after a function declaration with only types (no identifiers) in
the parentheses. Also, accept a function declaration with just a
type inside the parentheses, if this type can be positively
recognised as such, or if a prefix keyword like "explicit" nails
down the construct as a declaration.
`japanese-cp932' to `cp932' to fix the problem where saving a
source file written in Shift_JIS twice would end up having
`coding: japanese-cp932' which Ruby could not recognize.
(ruby-mode-set-encoding): Add support for encodings mapped to nil
in `ruby-encoding-map'.
(ruby-encoding-map): Map `us-ascii' to nil by default, meaning it
doesn't need to be explicitly declared in magic comment.
(ruby-encoding-map): Add type declaration for better customize UI.
to `after-save-hook' instead of `before-save-hook'.
(ruby-mode-set-encoding): Use the value of coding system used to
write the file. Call `basic-save-buffer-1' after modifying the
buffer.
* progmodes/cc-engine.el (c-backward-over-enum-header): Extracted from
the three other places and enhanced to handle generics.
(c-inside-bracelist-p): Uses new function above.
* progmodes/cc-fonts.el (c-font-lock-declarations): Uses new function
above.
(c-font-lock-enum-tail): Uses new function above.