Hi there,
Required keyword arguments (introduced in Ruby 2.1) are being
highlighted in alternating colours rather than consistently.
I have attached example images showing this behaviour. Note that
this only occurs when the the keyword arguments are required, i.e.,
they don’t have a default value. So, the following method signature
would result in the argument colours alternating:
def foo(bar:, baz:)
end
While the following method signature would result in all of the
arguments being coloured consistently:
def foo(bar: true, baz: false)
end
Also note that inserting a space before the delimiting comma between
the arguments results in consistent colouring:
def foo(bar: , baz:)
end
Please let me know if you need any further information.
Thanks very much,
Kieran
--report-emacs-bug output follows--
In GNU Emacs 24.5.1 (x86_64-apple-darwin13.4.0, NS apple-appkit-1265.21)
of 2015-04-11 on builder10-9.porkrind.org
Windowing system distributor `Apple', version 10.3.1348
Configured using:
`configure --with-ns '--enable-locallisppath=/Library/Application
Support/Emacs/${version}/site-lisp:/Library/Application
Support/Emacs/site-lisp''
Important settings:
value of $LC_CTYPE:
value of $LANG:
locale-coding-system: utf-8
Major mode: Ruby
Minor modes in effect:
global-git-commit-mode: t
async-bytecomp-package-mode: t
global-flycheck-mode: t
flycheck-mode: t
rspec-verifiable-mode: t
subword-mode: t
robe-mode: t
eldoc-mode: t
highlight-symbol-nav-mode: t
highlight-symbol-mode: t
diff-hl-mode: t
diff-auto-refine-mode: t
bug-reference-prog-mode: t
paredit-everywhere-mode: t
goto-address-prog-mode: t
auto-compile-on-load-mode: t
auto-compile-on-save-mode: t
ipretty-mode: t
global-rinari-mode: t
rinari-minor-mode: t
inf-ruby-minor-mode: t
shell-dirtrack-mode: t
guide-key-mode: t
hes-mode: t
global-page-break-lines-mode: t
page-break-lines-mode: t
delete-selection-mode: t
cua-mode: t
show-paren-mode: t
global-undo-tree-mode: t
undo-tree-mode: t
global-whitespace-cleanup-mode: t
whitespace-cleanup-mode: t
global-auto-revert-mode: t
electric-pair-mode: t
savehist-mode: t
desktop-save-mode: t
winner-mode: t
global-auto-complete-mode: t
auto-complete-mode: t
ido-ubiquitous-mode: t
ido-everywhere: t
recentf-mode: t
global-anzu-mode: t
anzu-mode: t
tooltip-mode: t
electric-indent-mode: t
mouse-wheel-mode: t
global-prettify-symbols-mode: t
menu-bar-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
blink-cursor-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
column-number-mode: t
line-number-mode: t
transient-mark-mode: t
Recent messages:
(No files need saving)
<left-fringe> <drag-mouse-1> is undefined
byte-code: Beginning of buffer [5 times]
Auto-saving...done
Auto-saving...done
Auto-saving...done
user-error: No further undo information
(No changes need to be saved)
Quit
End of buffer
Load-path shadows:
None found.
Features:
(shadow sort mail-extr emacsbug sendmail term ehelp magit-blame
magit-stash magit-bisect magit-remote magit-commit magit-sequence magit
magit-apply magit-wip magit-log magit-diff smerge-mode magit-core
magit-process magit-popup magit-mode magit-git crm magit-section
magit-utils git-commit log-edit message rfc822 mml mml-sec mm-decode
mm-bodies mm-encode mailabbrev mail-utils gmm-utils mailheader pcvs-util
add-log with-editor async-bytecomp async tramp-sh wgrep-ag wgrep grep
vc-hg ag find-dired ac-robe ace-jump-mode tabify dash-at-point
ac-inf-ruby face-remap align landmark smex mc-mark-more
multiple-cursors-core rect executable elisp-slime-nav redshank skeleton
aggressive-indent highlight-quoted vc-bzr vc-sccs vc-svn vc-cvs vc-rcs
diff-hl-dired org-element org-rmail org-mhe org-irc org-info org-gnus
org-docview doc-view image-mode dired-sort dired+ image-dired image-file
dired-x dired-aux dired org-bibtex bibtex org-bbdb org-w3m jsx-mode
warnings web-mode mmm-sample mmm-mode mmm-univ mmm-class tidy
rainbow-mode color json-mode json-reformat json-snatcher yaml-mode
rainbow-delimiters mmm-erb mmm-region mmm-utils tagedit sgml-mode
js2-imenu-extras js2-mode js2-old-indent js cc-mode cc-fonts cc-guess
cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs linum
disp-table vc-git vc-darcs xml flycheck-clojure cider-client
nrepl-client tramp tramp-compat tramp-loaddefs trampver queue cider-util
clojure-mode flycheck-package lisp-mnt flycheck-hdevtools flycheck
subr-x flymake rspec-mode superword subword robe eldoc url-http tls
url-auth mail-parse rfc2231 rfc2047 rfc2045 ietf-drums url-gw url
url-proxy url-privacy url-expand url-methods url-history url-cookie
url-domsuf url-util url-parse auth-source gnus-util mm-util mail-prsvr
password-cache url-vars mailcap etags highlight-symbol diff-hl vc-dir
ewoc vc vc-dispatcher diff-mode bug-reference paredit-everywhere paredit
goto-addr init init-locales init-local session
sanityinc-tomorrow-eighties-theme color-theme-sanityinc-tomorrow server
jka-compr init-ledger init-dash init-misc init-common-lisp
init-clojure-cider init-clojure init-slime init-lisp cl-lib-highlight
auto-compile packed ipretty pp init-paredit init-sql init-rails rinari
json jump inflections findr ruby-compilation which-func imenu inf-ruby
compile ruby-mode smie init-ruby-mode derived init-haskell
init-python-mode init-haml init-css init-html init-nxml init-org
ob-sqlite ob-sh shell ob-ruby ob-python ob-octave ob-ledger ob-latex
ob-gnuplot ob-dot ob-ditaa ob-R org-clock org org-macro org-footnote
org-pcomplete pcomplete org-list org-faces org-entities noutline outline
org-version ob-emacs-lisp ob ob-tangle ob-ref ob-lob ob-table ob-exp
org-src ob-keys ob-comint comint ansi-color ob-core ob-eval org-compat
org-macs org-loaddefs format-spec find-func cal-menu calendar
cal-loaddefs init-php init-javascript easy-mmode init-erlang
erlang-start init-csv init-markdown init-textile init-crontab
init-compile init-github init-git init-darcs init-vc init-editing-utils
guide-key s ucs-normalize popwin dash highlight-escape-sequences
whole-line-or-region page-break-lines delsel cua-base paren undo-tree
diff whitespace-cleanup-mode whitespace autorevert filenotify elec-pair
init-mmm mmm-auto mmm-vars mmm-compat init-fonts init-sessions savehist
desktop frameset init-windows switch-window quail help-mode winner ring
init-auto-complete auto-complete-config auto-complete popup
init-hippie-expand init-ido ido-ubiquitous ido-completing-read+ ido
init-recentf recentf tree-widget wid-edit init-flycheck init-ibuffer
ibuf-macs init-uniquify init-grep init-isearch diminish anzu mule-util
thingatpt init-dired init-proxies init-gui-frames init-osx-keys edmacro
kmacro init-themes init-xterm init-frame-hooks init-exec-path
exec-path-from-shell init-elpa fullframe eieio byte-opt bytecomp
byte-compile cl-extra cconv eieio-core rx cl-macs slime-autoloads info
easymenu package epg-config init-site-lisp cl gv cl-loaddefs cl-lib
init-utils init-compat init-benchmarking advice help-fns time-date
tooltip electric uniquify ediff-hook vc-hooks lisp-float-type mwheel
ns-win tool-bar dnd fontset image regexp-opt fringe tabulated-list
newcomment lisp-mode prog-mode register page menu-bar rfn-eshadow timer
select scroll-bar mouse jit-lock font-lock syntax facemenu font-core
frame cham georgian utf-8-lang misc-lang vietnamese tibetan thai
tai-viet lao korean japanese hebrew greek romanian slovak czech european
ethiopic indian cyrillic chinese case-table epa-hook jka-cmpr-hook help
simple abbrev minibuffer nadvice loaddefs button faces cus-face macroexp
files text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote make-network-process
cocoa ns multi-tty emacs)
Memory information:
((conses 16 753436 85819)
(symbols 48 57910 0)
(miscs 40 23901 5918)
(strings 32 172559 22772)
(string-bytes 1 4657766)
(vectors 16 85104)
(vector-slots 8 1922389 141622)
(floats 8 893 3334)
(intervals 56 11310 257)
(buffers 960 121))