Commit graph

225 commits

Author SHA1 Message Date
Dmitry Gutov
1b9d6163b0 Propertize operator symbol names with symbol syntax class
* lisp/progmodes/ruby-mode.el (ruby-syntax-propertize):
Do it here.
(ruby-font-lock-keywords): Instead of handling them here.  Leave
highlighting them to the "normal" matcher, because now we can.
(ruby-smie--forward-token, ruby-smie--backward-token):
Likewise, don't special-case operator symbols anymore.
(ruby-smie--args-separator-p): Simplify the regexp, match operator
names with \s_.
(ruby-smie--implicit-semi-p): Handle the special cases of ? and =
at EOL the same way: check if the character has been assigned the
symbol syntax class by syntax-propertize.
2016-03-09 17:22:56 +02:00
Dmitry Gutov
9b16bc2a01 Stop recognizing :#{} as symbol in ruby-mode
* lisp/progmodes/ruby-mode.el (ruby-font-lock-keywords): Remove
the weird part that recognized colon followed by interpolation
construct without quotes (e.g. ':#{abc}') as symbol, which is just a
syntax error in any modern version of Ruby.  Fix nearby bug reference.
2016-03-09 17:22:56 +02:00
Dmitry Gutov
366ec7719f Allow using the left shift operator without spaces on both sides
* lisp/progmodes/ruby-mode.el (ruby-singleton-class-p): Rename to
ruby-verify-heredoc, reverse the meaning of the return value, and
short-circuit if preceded by a symbol not separated by whitespace.

* test/automated/ruby-mode-tests.el (ruby-no-heredoc-left-shift)
(ruby-no-heredoc-class-self): New tests.
2016-03-09 17:22:56 +02:00
Dmitry Gutov
f50bc04a68 Allow splat operator before percent literal
* lisp/progmodes/ruby-mode.el (ruby-syntax-propertize):
Allow splat operator before percent literal.
2016-03-07 05:07:34 +02:00
Dmitry Gutov
991c801cd6 Don't apply the return value of goto-char as syntax class
* lisp/progmodes/ruby-mode.el (ruby-syntax-propertize): Don't
apply the return value of goto-char as syntax class.
2016-03-07 05:07:34 +02:00
Dmitry Gutov
6e63b3e997 Guard against nested percent literals
* lisp/progmodes/ruby-mode.el
(ruby-syntax-propertize-percent-literal):
Don't check the syntax status.
(ruby-syntax-propertize): Check it here.  And also guard against
being in a larger percent literal.

* test/automated/ruby-mode-tests.el
(ruby-no-nested-percent-literals): New test.
2016-03-07 05:07:34 +02:00
Dmitry Gutov
066f3bc3f3 Recognize iuwu-mod after an escaped newline
* lisp/progmodes/ruby-mode.el (ruby-smie--bosp): Check if the
newline is escaped.
(ruby-smie-rules): Indent iuwu-mod after an escaped newline
correctly.
2016-03-07 05:07:33 +02:00
Dmitry Gutov
c1ec7434c3 Make $, : and @ "prefix characters" in ruby-mode
* lisp/progmodes/ruby-mode.el (ruby-mode-syntax-table): Change the
syntax classes of $, : and @ to "prefix character"
(http://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00272.html).
(ruby-syntax-propertize): Undo that specifically for colons
followed by an opening paren or bracket.
(ruby-font-lock-keyword-beg-re): Include colon character.
(ruby-font-lock-keywords): Adjust the constants matcher for `:'
not being a symbol constituent anymore.
2016-02-23 02:28:40 +02:00
Eli Zaretskii
c1d32a6537 Fix problems caused by new implementation of sub-word mode
* lisp/subr.el (forward-word-strictly, backward-word-strictly):
New functions.
(word-move-empty-char-table): New variable.

* etc/NEWS: Mention 'forward-word-strictly' and
'backward-word-strictly'.

* doc/lispref/positions.texi (Word Motion): Document
'find-word-boundary-function-table', 'forward-word-strictly', and
'backward-word-strictly'.  (Bug#22560)

* src/syntax.c (syms_of_syntax)
<find-word-boundary-function-table>: Doc fix.

* lisp/wdired.el (wdired-xcase-word):
* lisp/textmodes/texnfo-upd.el (texinfo-copy-node-name)
(texinfo-copy-section-title, texinfo-start-menu-description)
(texinfo-copy-menu-title, texinfo-specific-section-type)
(texinfo-insert-node-lines, texinfo-copy-next-section-title):
* lisp/textmodes/texinfo.el (texinfo-clone-environment)
(texinfo-insert-@end):
* lisp/textmodes/texinfmt.el (texinfo-format-scan)
(texinfo-anchor, texinfo-multitable-widths)
(texinfo-multitable-item):
* lisp/textmodes/tex-mode.el (latex-env-before-change):
* lisp/textmodes/flyspell.el (texinfo-mode-flyspell-verify):
* lisp/skeleton.el (skeleton-insert):
* lisp/simple.el (count-words):
* lisp/progmodes/vhdl-mode.el (vhdl-beginning-of-libunit)
(vhdl-beginning-of-defun, vhdl-beginning-of-statement-1)
(vhdl-update-sensitivity-list, vhdl-template-block)
(vhdl-template-break, vhdl-template-case, vhdl-template-default)
(vhdl-template-default-indent, vhdl-template-for-loop)
(vhdl-template-if-then-use, vhdl-template-bare-loop)
(vhdl-template-nature, vhdl-template-procedural)
(vhdl-template-process, vhdl-template-selected-signal-asst)
(vhdl-template-type, vhdl-template-variable)
(vhdl-template-while-loop, vhdl-beginning-of-block)
(vhdl-hooked-abbrev, vhdl-port-copy, vhdl-hs-forward-sexp-func):
* lisp/progmodes/verilog-mode.el (verilog-backward-sexp)
(verilog-forward-sexp, verilog-beg-of-statement)
(verilog-set-auto-endcomments, verilog-backward-token)
(verilog-do-indent):
* lisp/progmodes/vera-mode.el (vera-guess-basic-syntax)
(vera-indent-block-closing):
* lisp/progmodes/simula.el (simula-context)
(simula-backward-up-level, simula-forward-down-level)
(simula-previous-statement, simula-next-statement)
(simula-skip-comment-backward, simula-calculate-indent)
(simula-find-if, simula-electric-keyword):
* lisp/progmodes/sh-script.el (sh-smie--rc-newline-semi-p):
* lisp/progmodes/ruby-mode.el (ruby-smie--redundant-do-p)
(ruby-smie--forward-token, ruby-smie--backward-token)
(ruby-singleton-class-p, ruby-calculate-indent)
(ruby-forward-sexp, ruby-backward-sexp):
* lisp/progmodes/ps-mode.el (ps-run-goto-error):
* lisp/progmodes/perl-mode.el (perl-syntax-propertize-function)
(perl-syntax-propertize-special-constructs)
(perl-backward-to-start-of-continued-exp):
* lisp/progmodes/pascal.el (pascal-indent-declaration):
* lisp/progmodes/octave.el (octave-function-file-p):
* lisp/progmodes/mantemp.el (mantemp-insert-cxx-syntax):
* lisp/progmodes/js.el (js--forward-function-decl):
* lisp/progmodes/idlwave.el (idlwave-show-begin-check)
(idlwave-beginning-of-block, idlwave-end-of-block)
(idlwave-block-jump-out, idlwave-determine-class):
* lisp/progmodes/icon.el (icon-is-continuation-line)
(icon-backward-to-start-of-continued-exp, end-of-icon-defun):
* lisp/progmodes/hideif.el (hide-ifdef-define):
* lisp/progmodes/f90.el (f90-change-keywords):
* lisp/progmodes/cperl-mode.el (cperl-electric-pod)
(cperl-linefeed, cperl-electric-terminator)
(cperl-find-pods-heres, cperl-fix-line-spacing)
(cperl-invert-if-unless):
* lisp/progmodes/cc-engine.el (c-forward-<>-arglist-recur):
* lisp/progmodes/cc-align.el (c-lineup-java-inher):
* lisp/progmodes/ada-mode.el (ada-compile-goto-error)
(ada-adjust-case-skeleton, ada-create-case-exception)
(ada-create-case-exception-substring)
(ada-case-read-exceptions-from-file, ada-after-keyword-p)
(ada-scan-paramlist, ada-get-current-indent, ada-get-indent-end)
(ada-get-indent-if, ada-get-indent-block-start)
(ada-get-indent-loop, ada-get-indent-type)
(ada-search-prev-end-stmt, ada-check-defun-name)
(ada-goto-decl-start, ada-goto-matching-start)
(ada-goto-matching-end, ada-looking-at-semi-or)
(ada-looking-at-semi-private, ada-in-paramlist-p)
(ada-search-ignore-complex-boolean, ada-move-to-start)
(ada-move-to-end, ada-which-function, ada-gen-treat-proc):
* lisp/net/quickurl.el (quickurl-grab-url):
* lisp/mail/sendmail.el (mail-do-fcc):
* lisp/mail/rmail.el (rmail-resend):
* lisp/mail/mailabbrev.el (mail-abbrev-complete-alias):
* lisp/mail/mail-extr.el (mail-extract-address-components):
* lisp/json.el (json-read-keyword):
* lisp/files.el (insert-directory):
* lisp/emacs-lisp/checkdoc.el (checkdoc-this-string-valid-engine):
* lisp/completion.el (symbol-under-point, symbol-before-point)
(symbol-before-point-for-complete, next-cdabbrev)
(add-completions-from-c-buffer):
* lisp/cedet/semantic/texi.el (semantic-up-context)
(semantic-beginning-of-context):
* lisp/cedet/semantic/bovine/el.el (semantic-get-local-variables):
use 'forward-word-strictly' and 'backward-word-strictly' instead
of 'forward-word' and 'backward-word'.
2016-02-05 23:54:21 +02:00
Dmitry Gutov
6a9399f7fd Support squiggly heredocs in ruby-mode
* lisp/progmodes/ruby-mode.el (ruby-here-doc-beg-re):
Support squiggly heredocs added in Ruby 2.3.

* test/indent/ruby.rb: Add squiggly example.
2016-01-21 00:26:38 +03:00
Dmitry Gutov
0ed8b42d22 ; Fix a typo 2016-01-19 08:05:23 +03:00
Dmitry Gutov
29da1cb3e7 Propertize backtick in 'def `(abc)' as symbol constituent
* lisp/progmodes/ruby-mode.el (ruby-syntax-propertize):
Propertize backtick in 'def `(abc)' as symbol constituent.
(ruby-syntax-propertize-function):
Rename to ruby-syntax-propertize.
2016-01-19 07:58:46 +03:00
Paul Eggert
0e963201d0 Update copyright year to 2016
Run admin/update-copyright.
2016-01-01 01:34:24 -08:00
Vasily Korytov
dbc090aeab Recognize .rbw and .pyw files (bug#18753)
* lisp/progmodes/python.el (auto-mode-alist):
Recognize .pyw files.

* lisp/progmodes/ruby-mode.el (auto-mode-alist):
Recognize .rbw files.
2015-11-16 01:32:35 +02:00
Dmitry Gutov
2edfc40a72 Fix ruby-mode auto-mode-alist entry
* lisp/progmodes/ruby-mode.el (auto-mode-alist): Add grouping
around the extensions (bug#21257).
2015-11-16 01:14:54 +02:00
Dmitry Gutov
3a1a220b02 Improve Ruby 1.9-style keyword keys highlighting
* lisp/progmodes/ruby-mode.el (ruby-font-lock-keywords):
Handle required keyword arguments (bug#21367).
And highlight the colon together with the name.
2015-11-15 07:25:19 +02:00
Paul Eggert
ab11a1cf27 Use %s to format strings instead of splicing them
If FOO might contain quotes that are part of a file or variable
name, the quotes should not be translated when showing FOO’s name
in a diagnostic.  So, for example, (message (concat (FOO ": bar")))
is not quite right, as it would translate FOO’s quotes.
Change it to (message "%s: bar" FOO) instead.
* lisp/allout.el (allout-process-exposed):
* lisp/calc/calc-ext.el (calc-do-prefix-help):
* lisp/calc/calc-store.el (calc-store-into):
* lisp/calendar/todo-mode.el (todo-category-completions):
* lisp/cedet/semantic/complete.el (semantic-completion-message):
* lisp/org/ob-latex.el (convert-pdf):
* lisp/org/org-crypt.el (org-crypt-check-auto-save):
* lisp/org/ox-latex.el (org-latex-compile):
* lisp/org/ox-man.el (org-man-compile):
* lisp/org/ox-odt.el (org-odt--export-wrap):
* lisp/org/ox-texinfo.el (org-texinfo-compile):
* lisp/progmodes/ruby-mode.el (ruby-in-ppss-context-p):
* lisp/progmodes/verilog-mode.el (verilog-batch-execute-func)
(verilog-signals-combine-bus, verilog-read-defines)
(verilog-getopt-file, verilog-expand-dirnames)
(verilog-modi-lookup, verilog-modi-modport-lookup-one):
* lisp/term/ns-win.el (ns-spi-service-call):
Use %s to avoid translating quotes of file names etc. in diagnostics.
2015-09-20 09:42:05 -07:00
Paul Eggert
284c470ef7 Backslash cleanup in Elisp source files
This patch should not change behavior.  It typically omits backslashes
where they are redundant (e.g., in the string literal "^\$").
In a few places, insert backslashes where they make regular
expressions clearer: e.g., replace "^\*" (equivalent to "^*") with
"^\\*", which has the same effect as a regular expression.
Also, use ‘\ %’ instead of ‘\%’ when avoiding confusion with SCCS IDs,
and similarly use ‘\ $’ instead of ‘\$’ when avoiding confusion with
RCS IDs, as that makes it clearer that the backslash is intended.
2015-09-17 16:09:39 -07:00
Paul Eggert
753fbfbef4 Fix several backslash typos in Elisp strings
* lisp/calendar/todo-mode.el (todo-files, todo-rename-file)
(todo-find-filtered-items-file, todo-reset-nondiary-marker)
(todo-reset-done-string, todo-reset-comment-string)
(todo-reset-highlight-item):
* lisp/erc/erc-networks.el (erc-networks-alist):
* lisp/gnus/gnus-art.el (gnus-button-handle-library):
* lisp/gnus/gnus-group.el (gnus-read-ephemeral-gmane-group-url):
* lisp/gnus/nntp.el (nntp-via-shell-prompt)
(nntp-telnet-shell-prompt):
* lisp/gnus/spam-report.el (spam-report-gmane-regex):
* lisp/image-dired.el (image-dired-rotate-original):
(image-dired-get-exif-file-name):
* lisp/international/latin1-disp.el (latin1-display-ucs-per-lynx):
* lisp/mail/undigest.el (rmail-digest-parse-rfc1153strict):
* lisp/mh-e/mh-letter.el (mh-file-is-vcard-p):
* lisp/mh-e/mh-mime.el (mh-file-mime-type-substitutions):
* lisp/net/shr-color.el (shr-color->hexadecimal):
* lisp/org/org-bibtex.el (org-bibtex-fields):
* lisp/org/org-docview.el (org-docview-export):
* lisp/org/org-entities.el (org-entities):
* lisp/org/ox-icalendar.el (org-icalendar-cleanup-string):
* lisp/progmodes/cperl-mode.el (cperl-indent-exp):
* lisp/progmodes/ebnf2ps.el (ebnf-file-suffix-regexp)
(ebnf-style-database):
* lisp/progmodes/idlw-help.el (idlwave-do-context-help1):
* lisp/progmodes/ruby-mode.el (ruby-imenu-create-index-in-block):
* lisp/progmodes/sql.el (sql-product-alist):
* lisp/progmodes/verilog-mode.el (verilog-error-regexp-emacs-alist)
(verilog-error-font-lock-keywords)
(verilog-assignment-operator-re):
* lisp/progmodes/vhdl-mode.el (vhdl-compiler-alist):
* lisp/textmodes/reftex-parse.el (reftex-parse-from-file):
* lisp/vc/add-log.el (change-log-version-number-regexp-list):
Fix typo by replacing ‘\’ with ‘\\’ in a string literal.
For example, to get the regular expression ‘\.’ use the string
literal "\\.", not "\." (which is equivalent to ".").
* lisp/emulation/viper-util.el (viper-glob-unix-files):
Remove stray ‘\j’ from string.
* lisp/gnus/nntp.el (nntp-via-shell-prompt)
(nntp-telnet-shell-prompt):
Treat > like $ when matching a shell prompt.
* lisp/progmodes/make-mode.el (makefile-browse):
Properly quote a diagnostic.
2015-09-17 12:39:54 -07:00
Paul Eggert
0c856a2c45 Fix some confusion with ‘format’
* lisp/allout-widgets.el (allout-widgets-before-change-handler)
(allout-graphics-modification-handler):
Protect arbitrary string in a format context with "%s" format.
* lisp/avoid.el:
* lisp/cedet/semantic/bovine/scm.el: Fix comment.
* lisp/calendar/icalendar.el (icalendar--convert-sexp-to-ical):
* lisp/erc/erc-button.el (erc-button-beats-to-time):
* lisp/gnus/message.el (message-send-form-letter):
* lisp/org/ob-core.el (org-babel-check-evaluate)
(org-babel-confirm-evaluate):
* lisp/org/ob-fortran.el (org-babel-fortran-var-to-fortran):
* lisp/org/ox-latex.el (org-latex-compile):
* lisp/org/ox-man.el (org-man-compile):
* lisp/org/ox-odt.el (org-odt-template):
* lisp/org/ox-texinfo.el (org-texinfo-compile):
* lisp/progmodes/prolog.el (prolog-help-info)
(prolog-view-predspec):
* lisp/progmodes/ruby-mode.el (ruby-parse-partial):
* lisp/progmodes/verilog-mode.el (verilog-showscopes):
* lisp/textmodes/rst.el (rst-replace-lines):
Change (message (format ...)) to (message ...), and likewise
for ‘error’.  This lessens the probability of confusion when the
output of ‘format’ contains ‘%’.
2015-08-05 19:07:28 -07:00
Paul Eggert
96794d2f97 Don't quote nil and t in doc strings
This is as per "Tips for Documentation Strings" in the elisp manual.
For consistency, do the same in diagnostics and comments.
2015-05-21 10:06:44 -07:00
Stefan Monnier
c9a75a4030 Fix byte-compiler warnings about looking-back.
* lisp/vc/log-view.el (log-view-end-of-defun-1):
* lisp/textmodes/tex-mode.el (latex-forward-sexp-1):
* lisp/textmodes/reftex-ref.el (reftex-goto-label):
* lisp/textmodes/bibtex.el (bibtex-insert-kill):
* lisp/progmodes/sh-script.el (sh--maybe-here-document):
* lisp/progmodes/ruby-mode.el (ruby-end-of-defun):
* lisp/progmodes/ada-mode.el (ada-in-numeric-literal-p):
* lisp/org/org.el (org-insert-heading, org-sort-entries):
* lisp/org/org-mouse.el (org-mouse-end-headline)
(org-mouse-context-menu):
* lisp/org/org-clock.el (org-clock-cancel):
* lisp/man.el (Man-default-man-entry):
* lisp/mail/rmail.el (rmail-get-new-mail, rmail-insert-inbox-text)
(rmail-ensure-blank-line):
* lisp/mail/footnote.el (Footnote-delete-footnote):
* lisp/mail/emacsbug.el (report-emacs-bug):
* lisp/info.el (Info-follow-reference, Info-fontify-node):
* lisp/info-look.el (info-lookup-guess-custom-symbol):
* lisp/help-fns.el (help-fns--key-bindings):
* lisp/files.el (hack-local-variables):
* lisp/emulation/viper-ex.el (viper-get-ex-token, ex-cmd-complete)
(viper-get-ex-pat, ex-expand-filsyms, viper-get-ex-file)
(viper-complete-filename-or-exit):
* lisp/emulation/viper-cmd.el (viper-backward-indent):
* lisp/emacs-lisp/lisp-mode.el (calculate-lisp-indent):
* lisp/emacs-lisp/elint.el (elint-get-top-forms):
* lisp/cus-edit.el (custom-face-edit-value-create):
* lisp/calendar/todo-mode.el (todo-set-item-priority)
(todo-filter-items-1, todo-convert-legacy-files)
(todo-prefix-overlays): Add explicit second arg to looking-back.
2015-04-20 21:55:00 -04:00
Dmitry Gutov
8142fc97af ruby-mode: Fix a "required arguments" confusion
* lisp/progmodes/ruby-mode.el (ruby-font-lock-keywords): Move `at_exit'
and `callcc' to the "methods with required arguments" section,
they need a block argument.  Remove a `throw' duplicate.
2015-03-20 07:03:54 +02:00
Bozhidar Batsov
5b77d81840 Separate Kernel methods with required args from those without 2015-03-17 23:40:20 +02:00
Bozhidar Batsov
771978259e Font-lock more Kernel methods as built-in 2015-03-17 22:41:36 +02:00
Dmitry Gutov
8854b9cf52 ruby-mode: Detect regexps after `!'
Fixes: debbugs:19285

* lisp/progmodes/ruby-mode.el (ruby-syntax-before-regexp-re): Detect
regexps after `!'.
2015-03-09 05:53:58 +02:00
Dmitry Gutov
4fab7badf5 ruby-mode: Don't consider =' a part of symbol when followed by >'
Fixes: debbugs:18644

* lisp/progmodes/ruby-mode.el (ruby-font-lock-keywords): Don't consider
`=' a part of symbol when followed by `>'.
2015-03-09 05:26:57 +02:00
Dmitry Gutov
e991af9228 ruby-mode: Change faces used for self, true, false and nil
Fixes: debbugs:17733

* lisp/progmodes/ruby-mode.el (ruby-font-lock-keywords): Use
`font-lock-constant-face' for nil, true and false.  Highlight
`self' as a keyword.
2015-03-08 22:10:45 +02:00
Nobuyoshi Nakada
dad0fc589c ruby-mode: Expect regexp after { or | too
Fixes: debbugs:20026

* progmodes/ruby-mode.el (ruby-syntax-before-regexp-re): Expect
beginning of regexp also after open brace or vertical bar.
2015-03-08 20:57:29 +02:00
Paul Eggert
7e09ef09a4 Update copyright year to 2015
Run admin/update-copyright.
2015-01-01 14:26:41 -08:00
Bozhidar Batsov
fafba80d73 Simplify ruby--string-region
* progmodes/ruby-mode.el (ruby--string-region): Simplify code
by leveraging `syntax-ppss'.
2014-12-22 17:03:32 +02:00
Bozhidar Batsov
e8acfc7fb4 Add a command for string quotes toggling to ruby-mode
* progmodes/ruby-mode.el (ruby-toggle-string-quotes): New command that
allows you to quickly toggle between single-quoted and double-quoted
string literals.
2014-12-09 19:45:03 +02:00
Bozhidar Batsov
fda355b5bd Associate more files with ruby-mode
* progmodes/ruby-mode.el (auto-mode-alist): Add .rabl, Berksfile
and Puppetfile.
2014-12-09 19:05:13 +02:00
Stefan Monnier
d66146bf18 * lisp/progmodes/ruby-mode.el (ruby-mode-variables): Don't meddle with
require-final-newline since prog-mode already took care of it.

Fixes: debbugs:17947
2014-07-05 14:37:45 -04:00
Dmitry Gutov
6a7faa1664 Fix bug#17732
* lisp/progmodes/ruby-mode.el (ruby-font-lock-keywords): Don't fontify
`!' in `!~' with `font-lock-negation-char-face'.
2014-06-16 06:33:29 +03:00
Dmitry Gutov
4dd3c4d53a * lisp/progmodes/ruby-mode.el (ruby-syntax-propertize-function):
Backtrack one char if the global/char-literal var matcher hits
inside a string.  The next char could be the beginning of an
expression expansion.

* test/automated/ruby-mode-tests.el
(ruby-interpolation-after-dollar-sign): New test.
2014-05-06 03:18:18 +04:00
Dmitry Gutov
0122b24d90 Highlight more Module methods
* lisp/progmodes/ruby-mode.el (ruby-font-lock-keywords): Highlight more
Module methods.

Fixes: debbugs:17216
2014-04-09 04:14:37 +04:00
Dmitry Gutov
8de64bb862 * lisp/progmodes/ruby-mode.el (ruby-font-lock-keywords): Highlight
special globals with font-lock-builtin-face.

Fixes: debbugs:17057
2014-03-27 10:21:15 +02:00
Dmitry Gutov
42ebc34ea8 Fix bug#17097
* lisp/progmodes/ruby-mode.el (ruby-syntax-propertize-function):
Don't propertize `?' or `!' as symbol constituent when after
colon.
2014-03-27 08:53:13 +02:00
Dmitry Gutov
c2d6c639cf Match special globals in Ruby better
* lisp/progmodes/ruby-mode.el (ruby-expression-expansion-re):
Match special global variables without curlies, too.
(ruby-font-lock-keywords): Simplify the matcher for special global
variables.  Don't require a non-word character after the variable.

Fixes: debbugs:17057
2014-03-24 10:53:56 +02:00
Dmitry Gutov
1fc8f6559a Fix bug#17050
* lisp/progmodes/ruby-mode.el (ruby-smie-rules):
Add indentation rule for ` @ '.
2014-03-21 06:26:39 +02:00
Dmitry Gutov
1f44df94fa * lisp/progmodes/ruby-mode.el (ruby-font-lock-keywords): Fontify
multiple adjacent negation chars.

Fixes: debbugs:17004
2014-03-13 15:37:27 +02:00
Dmitry Gutov
1850913d96 * lisp/progmodes/ruby-mode.el (ruby-font-lock-keywords): Highlight
regexp options.

Fixes: debbugs:16914
2014-03-02 00:04:59 +02:00
Dmitry Gutov
dfdb365c4c * lisp/progmodes/ruby-mode.el (ruby-smie-rules): Handle the
inconsistent second element of the list returned by
`smie-indent--parent'.
(ruby-font-lock-keywords): Disqualify any identifier before `=' as
method call.
2014-02-23 10:26:40 +02:00
Dmitry Gutov
62f9502226 * lisp/progmodes/ruby-mode.el (ruby-smie-rules): Don't indent specially
after `=>'.

Fixes: debbugs:16811
2014-02-23 07:53:53 +02:00
Dmitry Gutov
cb8f50a75c * lisp/progmodes/ruby-mode.el (auto-mode-alist): Add missing "or". 2014-02-21 17:39:17 +02:00
Dmitry Gutov
6da8227cfa * lisp/progmodes/ruby-mode.el (ruby-font-lock-keywords): `private',
`protected' and `public' can also be called without arguments.
2014-02-03 17:59:39 +02:00
Dmitry Gutov
68e004e0cd Fix bug#16610
* lisp/progmodes/ruby-mode.el (ruby-font-lock-keywords): For built-ins
that require arguments, check that they're followed by something that
looks like argument.
2014-02-01 19:06:08 +02:00
Dmitry Gutov
a09beb3df2 Fix bug#16609
* lisp/progmodes/ruby-mode.el (ruby-smie--implicit-semi-p): Check for
`:' before binary operators.  Don't check for `:'
before `[' and `(', or their syntax status.  A percent literal
can't end with either.
2014-02-01 16:54:58 +02:00
Dmitry Gutov
2f313daf4a Fixup the documentation for the previous change
* etc/NEWS: Mention `ruby-align-chained-calls'.

* lisp/progmodes/ruby-mode.el (ruby-align-chained-calls): Update the
  docstring and add :version tag.

Fixes: debbugs:16593
2014-01-31 19:33:12 +02:00