clojure-emacs / clojure-emacs/clojure-mode
Suggestion - add additional characters to syntax table to support evil mode word motions
- Vorherrschende Sprache
- Emacs Lisp
- Sterne
- 1k
- Forks
- 249
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
## Expected behavior
in evil mode w motion should work on clojure symbols for example: this-symbol?!
## Actual behavior
currently the motion will only include 'this' - i.e up to to the hyphen.
## Steps to reproduce the problem
std doom-emacs with clojure mode
## Environment & Version information
### clojure-mode version
```
clojure-mode (version 5.16.0)
```
### Emacs version
GNU emascs 27.1
### Operating system
Linux 5.15.0-67-generic #74-Ubuntu SMP Wed Feb 22 14:14:39 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
# Suggested change
I am not too familiar with emacs lisp or the clojure mode so this is just a suggestion - it has worked for me in my local configs.
add the following extensions to the word syntax definitions in the clojure-mode-syntax-table (there may be a more compact way of expressing that but I am not familiar with required syntax).
you may or may not want to include the # character. I found it useful and it is accepted in symbols
I am not certain how/if to this should be changed where a character is not allowed as the first char of a word....
I note also that motions like yW are a problem because they pick up brackets when at the end of an expression. So I also included # / : and . because these are useful. There may be a better way to include these...
```
;; word syntax: add clojure symbol characters
;; as per https://clojure.org/reference/reader
(modify-syntax-entry ?* "w" table)
(modify-syntax-entry ?+ "w" table)
(modify-syntax-entry ?! "w" table)
(modify-syntax-entry ?- "w" table)
(modify-syntax-entry ?_ "w" table)
(modify-syntax-entry ?' "w" table)
(modify-syntax-entry ?? "w" table)
(modify-syntax-entry ?< "w" table)
(modify-syntax-entry ?> "w" table)
;; word-syntax: and other characters that
;; are useful in word motions
(modify-syntax-entry ?# "w" table)
(modify-syntax-entry ?/ "w" table)
(modify-syntax-entry ?: "w" table)
(modify-syntax-entry ?. "w" table)
```
Beitragsleitfaden
Rechercherichtung
Finde clojure-mode-syntax-table und prüfe zuerst die vorhandenen Einträge für die Wortsyntax. Reproduziere das Verhalten von Evil-mode bei w und W mit this-symbol?! und vergleiche es mit den vorgeschlagenen Clojure-Symbolzeichen, einschließlich #, /, : und .. Als erledigt gilt die Aufgabe, wenn die vorgesehenen Zeichen von den Wortbewegungen konsistent behandelt werden, ohne fälschlicherweise umgebende Klammern einzubeziehen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- clojure, emacs-lisp
- Bereich
- tooling
- Issue-Typ
- Feature
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100