Function: ruby-ts-mode
ruby-ts-mode is an autoloaded, interactive and byte-compiled function
defined in ruby-ts-mode.el.gz.
Signature
(ruby-ts-mode)
Documentation
Major mode for editing Ruby, powered by tree-sitter.
In addition to any hooks its parent mode ruby-base-mode might have
run, this mode runs the hook ruby-ts-mode-hook, as the final or
penultimate step during initialization.
C-M-q prog-indent-sexp
C-c ' ruby-toggle-string-quotes
C-c C-f ruby-find-library-file
C-c { ruby-toggle-block
Probably introduced at or before Emacs version 29.1.
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/ruby-ts-mode.el.gz
;;;###autoload
(define-derived-mode ruby-ts-mode ruby-base-mode "Ruby"
"Major mode for editing Ruby, powered by tree-sitter."
:group 'ruby
:syntax-table ruby-mode-syntax-table
(unless (treesit-ready-p 'ruby)
(error "Tree-sitter for Ruby isn't available"))
(treesit-parser-create 'ruby)
(setq-local add-log-current-defun-function #'ruby-ts-add-log-current-function)
;; Navigation.
(setq-local treesit-defun-type-regexp ruby-ts--method-regex)
;; AFAIK, Ruby can not nest methods
(setq-local treesit-defun-prefer-top-level nil)
;; Imenu.
(setq-local imenu-create-index-function #'ruby-ts--imenu)
(setq-local treesit-simple-indent-rules (ruby-ts--indent-rules))
;; Font-lock.
(setq-local treesit-font-lock-settings (ruby-ts--font-lock-settings 'ruby))
;; Level 3 is the default.
(setq-local treesit-font-lock-feature-list
'(( comment method-definition parameter-definition)
( keyword regexp string type)
( builtin-variable builtin-constant builtin-function
delimiter escape-sequence
constant global instance
interpolation literal symbol assignment)
( bracket error function operator punctuation)))
(treesit-major-mode-setup)
(setq-local syntax-propertize-function #'ruby-ts--syntax-propertize))