File: rust-mode-treesitter.el

package info (click to toggle)
elpa-rust-mode 1.0.6-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 336 kB
  • sloc: lisp: 4,953; makefile: 38; sh: 8
file content (32 lines) | stat: -rw-r--r-- 1,022 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
;;; rust-mode-treesitter.el --- use native rust-ts-mode -*-lexical-binding: t-*-
;;; Commentary:

;; Derive from rust-ts-mode instead of prog-mode

;;; Code:

(require 'rust-mode)

;; Do not compile or load on Emacs releases that don't support
;; this.  See https://github.com/rust-lang/rust-mode/issues/520.
(when (version<= "29.1" emacs-version)
  (require 'treesit)
  (require 'rust-ts-mode)

  ;; HACK: `rust-ts-mode' adds itself to the `auto-mode-alist'
  ;; after us, so we need to readd `rust-mode' to the front of
  ;; the list after loading `rust-ts-mode'.
  (setq auto-mode-alist (delete '("\\.rs\\'" . rust-mode) auto-mode-alist))
  (add-to-list 'auto-mode-alist '("\\.rs\\'" . rust-mode))

  (define-derived-mode rust-mode rust-ts-mode "Rust"
    "Major mode for Rust code.

\\{rust-mode-map}"
    :group 'rust-mode

    (add-hook 'before-save-hook rust-before-save-hook nil t)
    (add-hook 'after-save-hook rust-after-save-hook nil t)))

(provide 'rust-mode-treesitter)
;;; rust-mode-treesitter.el ends here