Подтвердить что ты не робот

Подсветка контекста Vim

Я думаю, что стандартная подсветка полезна - в некоторой степени. При программировании с обратными вызовами и вложенными структурами это не помогает. Ключевые слова и строки, они появляются повсюду, и это помогает, когда они отображаются в определенном цвете, но эти цвета не дают никакого представления о том, в какой области я, где я нахожусь в лексической точке зрения.

Я слышал об освещении контекста, в разговоре с Дугласом Крокфордом, который я не могу вспомнить. Идея состоит в том, чтобы выделить лексические уровни охвата. Определения верхнего уровня окрашены в color0, операторы блока внутреннего уровня окрашены в color1, и это повторяется рекурсивно каждый раз, когда вводится новый уровень области. Ниже приведен пример этого, используя некоторые мнимые библиотеки node. (Теперь добавлен пример (ish (или схема lisp))

Example.Pseudo Scheme Multi-Paren Example

Это не обязательно для node или javascript. Интересно, есть ли редактор /vim плагин, реализующий эту функцию. Я не знаю, является ли контекстное выделение для этого слова, но я не могу просто найти его. Google для контекстного выделения вызывает результаты для общего выделения токенов и ConTeXt (о чем я не знаю).

Это существует? Есть ли редактор, реализующий это? И что еще более важно, могу ли я получить это в vim?

Другой вопрос, который идентичен моему, без реального ответа: Является ли стиль Crockford Context Coloring реализованным в любом редакторе кода?

4b9b3361

Ответ 1

Не совсем то, что вы запрашиваете, но сложение кода - это мощная функция, позволяющая сосредоточиться на определенных уровнях вашего кода. Vim поддерживает складывание http://vim.wikia.com/wiki/Folding

Отступы также очень удобны для фокусировки на определенных частях кода. Возвышенный текстовый редактор имеет это (http://sublimetext.userecho.com/topic/98136-indent-guide-highlighting-changed/)

Я видел этот плагин для vim (https://github.com/nathanaelkane/vim-indent-guides), который, похоже, делает то же самое.

Вы могли бы создать синтаксический ярлык, который использует логику вдавливания этого плагина для изменения цветовой схемы. То, что вы описываете, больше задействовано там, где ему нужно работать не только с отступлением, но и как парсер языка.

Ответ 2

Я тоже не мог найти ничего подобного, поэтому написал один:

rainbow_levels.vim: другой подход к подсветке кода.

Конечно, это очень упрощенная реализация, учитывая только уровни отступов вместо реального контекста, но он выполняет свою работу; D

Ответ 3

В VIM теперь есть плагин, который называется vim-js-context-coloring. Я только немного поиграл с ним и пока не впечатлен, но выглядит многообещающе!

Примечание: вам нужно установить npm, а затем запустить npm install в каталоге, где установлен плагин. Я с сожалением забыл прочитать инструкции, когда я его установил.