Commit graph

5741 commits

Author SHA1 Message Date
Bozhidar Batsov
03177f98c9 * lisp/progmodes/ruby-mode.el: Improve a few error messages. 2013-11-05 18:28:40 +02:00
Bozhidar Batsov
ae1f1ce1e2 * lisp/progmodes/python.el (python-mode): Remove incorrect text from docstring.
* 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.
2013-11-05 11:47:47 +02:00
Bozhidar Batsov
ae93bc7480 * lisp/progmodes/ruby-mode.el (ruby-mode): Remove incorrect text from docstring. 2013-11-05 11:30:15 +02:00
Paul Eggert
a67c4ae059 Spelling fixes. 2013-11-04 23:44:14 -08:00
Stefan Monnier
e5afbcacfa * lisp/progmodes/python.el: Fix up last change.
(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.
2013-11-04 14:14:58 -05:00
Bozhidar Batsov
2ea53115b4 * lisp/progmodes/ruby-mode.el (ruby-mode): Clean up docstring. 2013-11-04 16:20:58 +02:00
Dmitry Gutov
dca01b0923 * lisp/progmodes/ruby-mode.el (ruby-smie--forward-token)
(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.
2013-11-04 12:50:47 +02:00
Nathan Trapuzzano
ec79b92bfa * lisp/progmodes/cperl-mode.el (cperl-font-lock-fontify-region-function):
Don't infloop when expanding region over `multiline' syntax-type that
begins a line.

Fixes: debbugs:15778
2013-11-03 22:44:23 -05:00
Stefan Monnier
e61845c1db * lisp/emacs-lisp/smie.el (smie-rule-parent): Always call
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.
2013-11-03 17:56:03 -05:00
Dmitry Gutov
3d42b96899 * lisp/progmodes/ruby-mode.el (ruby-smie--rule-parent-skip-assign): New
function, replacement for `smie-rule-parent' for when we want to
skip over our direct parent if it's an assignment token..
(ruby-smie-rules): Use it.
2013-11-02 09:18:11 +04:00
Dmitry Gutov
7ffd37219b * lisp/progmodes/ruby-mode.el Use `syntax-propertize-function'
unconditionally.  Remove now unnecessary forward declarations.
Remove XEmacs-specific setup.
(ruby-here-doc-end-re, ruby-here-doc-beg-match)
(ruby-font-lock-syntactic-keywords)
(ruby-comment-beg-syntax, ruby-in-here-doc-p)
(ruby-here-doc-find-end, ruby-here-doc-beg-syntax)
(ruby-here-doc-end-syntax): Remove.
(ruby-mode): Don't check whether `syntax-propertize-rules' is
defined as function.
2013-11-02 05:10:10 +04:00
Bozhidar Batsov
a3996a2eba * lisp/progmodes/ruby-mode.el (ruby-mode-variables, ruby-mode): Use `setq-local'. 2013-11-02 04:17:54 +04:00
Bozhidar Batsov
6f9260e8f8 * lisp/progmodes/ruby-mode.el (ruby-mode-variables): Don't set syntax
table and abbrev table, `define-derived-mode' does that for us
anyway.
2013-11-02 03:55:15 +04:00
Bozhidar Batsov
983d0df5e1 * lisp/progmodes/ruby-mode.el (ruby-indent-tabs-mode)
(ruby-indent-level, ruby-comment-column, ruby-deep-arglist):
Add property :safe.
(ruby-deep-arglist): Add property :type.
2013-11-01 07:35:35 +04:00
Stefan Monnier
195ee2f0a9 * lisp/progmodes/python.el (python-shell-get-buffer): New function.
(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.
2013-10-29 21:28:36 -04:00
Alan Mackenzie
b1e8e01061 Indent statements in macros following "##" correctly.
* progmodes/cc-engine.el (c-crosses-statement-barrier-p): Modify
the "#" arm of a cond form to handle "#" and "##" operators.
2013-10-27 21:24:17 +00:00
Dmitry Gutov
c8c605ac9c * lisp/progmodes/ruby-mode.el (ruby-smie--bosp): Anything that goes
after `=' is probably a new expression.
2013-10-27 07:25:03 +04:00
Dmitry Gutov
bae91342a4 * lisp/progmodes/ruby-mode.el (ruby-smie--args-separator-p): Be more
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.
2013-10-26 05:16:37 +04:00
Stefan Monnier
eb89dc14d9 * lisp/progmodes/prolog.el: Remove old indent; use post-self-insert-hook.
(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.
2013-10-25 11:23:45 -04:00
Dmitry Gutov
963ce6361a * lisp/progmodes/ruby-mode.el (ruby-mode-menu): Use proper
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 `{'.
2013-10-25 08:35:56 +04:00
John Anthony
f73754c923 * lisp/progmodes/ruby-mode.el (ruby-mode-menu): Add a menu
Fixes: debbugs:15600
2013-10-24 19:38:39 -07:00
John Anthony
a0be396a4a * lisp/progmodes/inf-lisp.el (inferior-lisp-menu): Add menu.
Fixes: debbugs:15599
2013-10-24 19:35:55 -07:00
Leo Liu
3eb91f7bf7 Small fix to last change 2013-10-25 08:52:26 +08:00
Rüdiger Sonderfeld
6408a65db5 * progmodes/octave.el (octave-lookfor): Handle empty lookfor
result.  Ask user to retry using '-all' flag.

Fixes: debbugs:15701
2013-10-25 08:49:33 +08:00
Stefan Monnier
71e3276bc5 * lisp/emacs-lisp/smie.el: New smie-config system.
(smie-config): New defcustom.
(smie-edebug, smie-config-show-indent, smie-config-set-indent)
(smie-config-guess, smie-config-save): New commands.
(smie-config--mode-local, smie-config--buffer-local)
(smie-config--trace, smie-config--modefuns): New vars.
(smie-config--advice, smie-config--mode-hook)
(smie-config--setter, smie-config-local, smie-config--get-trace)
(smie-config--guess-value, smie-config--guess): New functions.
(smie-indent-forward-token, smie-indent-backward-token): Don't copy
text properties.  Treat "string fence" syntax like string syntax.

* lisp/progmodes/sh-script.el (sh-use-smie): Change default.
(sh-smie-sh-rules, sh-smie-rc-rules): Obey legacy sh-indent-* vars.
(sh-var-value): Simplify by CSE.
(sh-show-indent, sh-set-indent, sh-learn-line-indent)
(sh-learn-buffer-indent): Redirect to their SMIE equivalent when SMIE
is used.
(sh-guess-basic-offset): Use cl-incf.
(sh-guess-basic-offset): Use push+nreverse to avoid O(n^2).
2013-10-24 17:16:20 -04:00
Dmitry Gutov
369bbf7198 * lisp/progmodes/ruby-mode.el (ruby-smie-rules): Fix the "curly block
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.
2013-10-24 04:47:28 +04:00
Stefan Monnier
03d44565bb * lisp/progmodes/ruby-mode.el (ruby-smie-rules): Only align with parent of
{ if it is hanging.
2013-10-23 13:55:53 -04:00
Stefan Monnier
bc4aaa31e2 * lisp/progmodes/ruby-mode.el (ruby-smie-rules): Don't return 0 for
:before ";".
2013-10-23 13:18:11 -04:00
Jed Brown
f493ff19e9 compile: Support GNU Make-4.0 directory quoting (tiny change)
* lisp/progmodes/compile.el (compilation-directory-matcher)
(compilation-page-delimiter): Support GNU Make-4.0 directory quoting.

Fixes: debbugs:15678
2013-10-23 09:25:56 -07:00
Dmitry Gutov
ee4282cde2 * lisp/progmodes/ruby-mode.el (ruby-smie--at-dot-call): Use
`following-char'.
2013-10-23 06:59:45 +04:00
Stefan Monnier
7790a27058 * lisp/emacs-lisp/smie.el (smie-rule-parent): Fix opener-test.
* lisp/progmodes/ruby-mode.el (ruby-smie-rules):
Remove corresponding workaround.  Fix indentation rule of ";" so it
also applies when ";" is the parent.
2013-10-22 11:45:56 -04:00
Michael Gauland
a0f143c90a * lisp/progmodes/ebnf2ps.el (ebnf-prologue): Avoid PS error with some
viewers such as evince when ebnf-production-name-p is nil.

Fixes: debbugs:15625
2013-10-21 20:47:32 -04:00
Dmitry Gutov
18cacc392d * lisp/progmodes/ruby-mode.el (ruby-smie-grammar): Remove outdated
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.
2013-10-22 02:25:59 +04:00
Stefan Monnier
df74c4be16 * lisp/progmodes/ruby-mode.el (ruby-smie-rules): Indent after + used as
an instruction.
2013-10-21 09:34:13 -04:00
Dmitry Gutov
cfef16c084 * lisp/progmodes/ruby-mode.el (ruby-smie-grammar): Add (almost) all
infix operators.
(ruby-smie--implicit-semi-p): Add new operator chars.
2013-10-21 09:54:18 +04:00
Dmitry Gutov
8c1ae48154 * lisp/progmodes/ruby-mode.el (ruby-mode-map): Add binding for
`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.
2013-10-21 07:50:06 +04:00
Alan Mackenzie
87756ca9f4 Allow comma separated lists after Java "implements".
* 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.
2013-10-20 14:27:22 +00:00
Johan Bockgård
c25f8957ba * lisp/progmodes/verilog-mode.el (verilog-mode): Don't set
comment-indent-function globally.
2013-10-20 12:13:26 +02:00
Alan Mackenzie
033f22ddad Fix fontification bugs with constructors and const.
* 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.
2013-10-19 15:11:07 +00:00
Glenn Morris
d64da4b71a * lisp/progmodes/verilog-mode.el (verilog-case-fold): Add :version. 2013-10-18 00:56:45 -07:00
Wilson Snyder
ea89ff08fb Sync with upstream verilog-mode revision 1a6ecec7
* progmodes/verilog-mode.el (verilog-mode-version): Update.
(verilog-mode-release-date): Remove.
(verilog-highlight-grouping-keywords, verilog-active-low-regexp)
(verilog-auto-inst-param-value, verilog-auto-input-ignore-regexp)
(verilog-auto-inout-ignore-regexp, verilog-auto-output-ignore-regexp)
(verilog-auto-tieoff-ignore-regexp)
(verilog-auto-unused-ignore-regexp, verilog-typedef-regexp)
(verilog-scan-cache-preserving, verilog-mode, verilog-at-struct-p)
(verilog-signals-with, verilog-dir-cache-preserving)
(verilog-auto-inst, verilog-auto-inout-param, verilog-auto): Doc fixes.
(verilog-case-fold): New option, to control case folding in
regexp searches, bug597.
(verilog-menu): Add verilog-sk-uvm-component, minor tweaks.
(verilog-string-match-fold, verilog-in-paren-count)
(verilog-in-struct-nested-p, verilog-at-struct-mv-p)
(verilog-at-close-struct-p): New functions.
(verilog-beg-block-re-ordered, verilog-extended-case-re)
(verilog-forward-sexp, verilog-set-auto-endcomments):
(verilog-leap-to-case-head): Handle "unique0" case.
(verilog-in-constraint-re): New constant.
(verilog-keywords, verilog-type-font-keywords):
Add some SystemVerilog 1800-2012 keywords.
(verilog-label-be): Remove unimplemented argument, bug669.
(verilog-batch-execute-func): When batch expanding clear create-lockfiles
to prevent spurious user locks when a file ends up not changing.
(verilog-calculate-indent, verilog-calc-1)
(verilog-at-close-constraint-p, verilog-at-constraint-p)
(verilog-do-indent): Fix indentation of nested constraints and structures.
(verilog-sig-tieoff, verilog-typedef-name-p, verilog-auto-inst)
(verilog-auto-inst-param): Use verilog-string-match-fold.
(verilog-read-inst-module-matcher): Fix AUTOINST on gate primitives with #1.
(verilog-read-decls): Fix double-declaring user-defined typed signals.
Reads all user-defined typed variables.
(verilog-read-defines): Fix reading definitions inside comments, bug647.
(verilog-signals-matching-regexp)
(verilog-signals-not-matching-regexp, verilog-auto):
Respect verilog-case-fold.
(verilog-diff-report): Fix line count.
(verilog-auto-assign-modport): Remove unused local `modi'.
(verilog-auto-inst-port): Support [][] in AUTO_TEMPLATE to
better handle multidimensional arrays.
Fix packed array ports misadding bit index in AUTOINST, bug637.
(verilog-auto-output, verilog-auto-input): Fix AUTOINPUT and AUTOOUTPUT
to not double-declare existing outputs and inputs, respectively.
(verilog-template-map): Bind U to verilog-sk-uvm-component.
(verilog-sk-uvm-object): Rename from verilog-sk-uvm-class.
(verilog-sk-uvm-component): New skeleton.
(verilog-submit-bug-report): Add verilog-case-fold,
remove verilog-mode-release-date.
2013-10-18 00:46:36 -07:00
Stefan Monnier
85527ff309 * lisp/progmodes/sh-script.el (sh-find-prev-matching): Disable SMIE's
forward-sexp-function while we redo its job.

Fixes: debbugs:15613
2013-10-16 23:56:51 -04:00
Dima Kogan
a24b996116 * lisp/progmodes/subword.el (subword-capitalize): Fix Stefan's mess.
Fixes: debbugs:15580
2013-10-15 23:02:40 -04:00
Dima Kogan
c2de5588b4 * lisp/progmodes/subword.el (subword-capitalize): Be careful when
the search for [[:alpha:]] fails.

Fixes: debbugs:15580
2013-10-14 15:20:29 -04:00
Dmitry Gutov
1eda1d8d34 * lisp/progmodes/ruby-mode.el (ruby-smie--args-separator-p): Handle
methods ending with `?' and `!'.

* test/indent/ruby.rb: More examples for bug#15594, both failing and
now passing.
2013-10-14 04:51:20 +03:00
Akinori MUSHA
e70181b829 * progmodes/ruby-mode.el (ruby-encoding-map): Add a mapping from
`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.
2013-10-14 03:23:29 +03:00
Glenn Morris
a5d38e349a * lisp/progmodes/sh-script.el (sh-mark-line, sh-learn-buffer-indent):
Occur buffers are read-only.  http://bugs.debian.org/720775
2013-10-13 16:21:56 -07:00
Dmitry Gutov
a9ba094b81 * lisp/progmodes/ruby-mode.el (ruby-mode): Add `ruby-mode-set-encoding'
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.
2013-10-14 00:35:31 +03:00
Alan Mackenzie
7a06871716 Fix indentation/fontification of Java enum with "implements"/generic.
* 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.
2013-10-13 19:54:46 +00:00
Andreas Politz
fdcb2049f1 * lisp/progmodes/sql.el (sql-add-product): Fix paren typo.
Fixes: debbugs:15435
2013-10-12 22:23:42 -07:00