Немного что-то, что можно было бы заимствовать у IDE. Таким образом, идея заключалась бы в том, чтобы выделить функциональные аргументы (и, возможно, узлы переменных имен) внутри тел функций. Это поведение по умолчанию для некоторых C:
Хорошо, если бы я разместил курсор внутри func
, я бы хотел, чтобы аргументы foo
и bar
выделены, чтобы лучше следовать логике алгоритма. Обратите внимание, что аналогичное имя foo
в func2
не получило бы подсветки. Эта роскошь может быть опущена, хотя...
С помощью локально ограниченных переменных мне также хотелось бы иметь локально инициализированные переменные highlit:
Наконец, чтобы заново осознать роскошь:
Не так тривиально писать это. Я использовал C, чтобы дать общее представление. На самом деле я мог бы использовать это для программирования Scheme/ Clojure лучше:
Это должно распознавать привязки let
, loop
, for
, doseq
.
Мой vimscript-fu не настолько силен; Я подозреваю, что нам нужно
- Разберите (не-regexply?) аргументы из определения функции под курсором. Конечно, это будет язык. Мой приоритет будет Clojure.
- определить область синтаксиса для охвата только данной функции/области действия
- укажите требуемые синтаксические соответствия
В качестве функции это может быть отображено на ключ (если он очень ресурсоемкий) или CursorMoved
, если не так медленно.
Хорошо, теперь. Кто-нибудь написал/нашел что-то вроде этого? У vimscript-гуру есть идея о том, как на самом деле начать писать такой script?
Извините за небольшую оффтопичность и плохое форматирование. Не стесняйтесь редактировать/форматировать. Или проголосовать, чтобы закрыть.