clojure-emacs / clojure-emacs/clojure-mode

Suggestion - add additional characters to syntax table to support evil mode word motions

Aperta
#647 1 commento 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
Emacs Lisp
Stelle
1k
Fork
249
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

## 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)
```

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Individua clojure-mode-syntax-table e rivedi innanzitutto le voci esistenti per la sintassi delle parole. Riproduci il comportamento di Evil-mode per w e W con this-symbol?! e confrontalo con i caratteri di simbolo Clojure proposti, inclusi #, /, : e .. Il lavoro è completato quando i caratteri previsti vengono gestiti in modo coerente dai movimenti per parole, senza assorbire erroneamente le parentesi circostanti.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
clojure, emacs-lisp
Ambito
tooling
Tipo di issue
Funzionalità
Difficoltà
2/5
Tempo stimato
1-3 ore
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.