Variable: rust-ts-mode-abbrev-table

rust-ts-mode-abbrev-table is a variable defined in rust-ts-mode.el.gz.

Value

#<obarray n=1>

Documentation

Abbrev table for rust-ts-mode.

Source Code

;; Defined in /usr/src/emacs/lisp/progmodes/rust-ts-mode.el.gz
;;;###autoload
(define-derived-mode rust-ts-mode prog-mode "Rust"
  "Major mode for editing Rust, powered by tree-sitter."
  :group 'rust
  :syntax-table rust-ts-mode--syntax-table

  ;; `treesit-ready-p' also checks for buffer size.
  (when (and (treesit-ensure-installed 'rust)
             (treesit-ready-p 'rust))
    (setq treesit-primary-parser (treesit-parser-create 'rust))

    ;; Syntax.
    (setq-local syntax-propertize-function
                #'rust-ts-mode--syntax-propertize)

    ;; Comments.
    (c-ts-common-comment-setup)

    ;; Font-lock.
    (setq-local treesit-font-lock-settings rust-ts-mode--font-lock-settings)
    (setq-local treesit-font-lock-feature-list
                '(( comment definition)
                  ( keyword string)
                  ( assignment attribute builtin constant escape-sequence
                    number type)
                  ( bracket delimiter error function operator property variable)))

    ;; Prettify configuration
    (setq prettify-symbols-alist rust-ts-mode-prettify-symbols-alist)
    (setq prettify-symbols-compose-predicate
          #'rust-ts-mode--prettify-symbols-compose-p)

    ;; Imenu.
    (setq-local treesit-simple-imenu-settings
                `(("Module" "\\`mod_item\\'" nil nil)
                  ("Enum" "\\`enum_item\\'" nil nil)
                  ("Impl" "\\`impl_item\\'" nil nil)
                  ("Type" "\\`type_item\\'" nil nil)
                  ("Struct" "\\`struct_item\\'" nil nil)
                  ("Fn" "\\`function_item\\'" nil nil)))

    ;; Outline.
    (setq-local treesit-outline-predicate
                (rx bos (or "mod_item"
                            "enum_item"
                            "impl_item"
                            "type_item"
                            "struct_item"
                            "function_item"
                            "trait_item")
                    eos))
    ;; Indent.
    (setq-local indent-tabs-mode nil
                treesit-simple-indent-rules rust-ts-mode--indent-rules)

    ;; Electric.
    (setq-local electric-indent-chars
                (append "{}():;,#" electric-indent-chars))

    ;; Flymake.
    (add-hook 'flymake-diagnostic-functions #'rust-ts-flymake nil 'local)

    ;; Navigation.
    (setq-local treesit-defun-type-regexp
                (regexp-opt '("enum_item"
                              "function_item"
                              "impl_item"
                              "struct_item")))
    (setq-local treesit-defun-name-function #'rust-ts-mode--defun-name)

    (setq-local treesit-thing-settings
                `((rust
                   (list
                    ,(rx bos (or "token_tree_pattern"
                                 "token_tree"
                                 "attribute_item"
                                 "inner_attribute_item"
                                 "declaration_list"
                                 "enum_variant_list"
                                 "field_declaration_list"
                                 "ordered_field_declaration_list"
                                 "type_parameters"
                                 "use_list"
                                 "parameters"
                                 "bracketed_type"
                                 "array_type"
                                 "for_lifetimes"
                                 "tuple_type"
                                 "unit_type"
                                 "use_bounds"
                                 "type_arguments"
                                 "delim_token_tree"
                                 "arguments"
                                 "array_expression"
                                 "parenthesized_expression"
                                 "tuple_expression"
                                 "unit_expression"
                                 "field_initializer_list"
                                 "match_block"
                                 "block"
                                 "tuple_pattern"
                                 "slice_pattern")
                         eos)))))

    (treesit-major-mode-setup)))