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

Есть ли там IDE, который выделяет структурные синтаксисы?

Немного вдохновил этот вопрос на графическую среду программирования. Я не думаю, что С++ или С# действительно способствуют этому типу среды, но, возможно, там что-то наполовину.

Многие из IDE, которые я использовал, будут использовать подсветку синтаксиса для изменения цвета текста переднего плана (или даже фона) для ключевых слов, строк, комментариев и т.д.

Есть ли там IDE, которые будут выделять большие синтаксические структуры? Вот пример того, о чем я думаю.

Пример структуры кода http://img256.imageshack.us/img256/9441/codestructure.png

(Пожалуйста, не комментируйте мой плохой выбор цветов... Я не дизайнер по какой-то причине.)

Хотя это не графическая среда перетаскивания, подсветка все равно даст общее представление о структуре кода. Лично, изучая С# после нескольких лет С++, я все еще поймаю себя на том, что в конце файла у вас обычно заканчивается класс и конец пространства имен, поэтому конец функции является двухуровневым в. (В файле кода С++ конец функции обычно находится на верхнем уровне отступа). Я помогаю себе, бросая небольшие комментарии в закрытые скобки:

    } // end class 
} // end namespace

Но мне кажется, что некоторая автоматическая окраска сделает это совершенно ненужным. Так или иначе, это уже сделано? Бонус, если это дополнение к Visual Studio.

4b9b3361

Ответ 1

Самое близкое, что я видел, это Codekana, хотя он не имеет "подсветки синтаксиса фона", он раскрашивает различные структуры управления потоком:

http://www.codekana.com/img/post-hls.gif


http://www.codekana.com/img/nested-hdr.gif

  • Красный для циклов
  • Зеленый для if-блоков
  • Браун для остальных блоков
  • Аквамарин для блоков-переключателей
  • Оливия для блоков исключений
  • Оранжевый для возврата

Ответ 2

Я автор Codekana. Действительно, то, что вы описали выше, было главной целью продукта. BTW, я собираюсь опубликовать статью о "создании" и базовой технологии, которая довольно изящна. Вероятно, он будет доступен на следующей неделе (26 марта, 2009 или около того). Рекомендуемое чтение, если можно так сказать.

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

Я бы прокомментировал выше, вместо предоставления другого ответа, но моя репутация не позволяет комментировать.: (

[UPDATE: Спасибо за upvotes, теперь я могу прокомментировать!]

Ответ 4

Текущий редактор BlueJ делает именно то, что вы описываете:

BlueJ editor screenshot

Ответ 5

Visual Studio IDE делает это уже, но с другой визуализацией - вы можете развернуть и заключить вложенные блоки, щелкнув кнопки +/- на левом поле.

Ответ 6

Хорошая идея. Лично мне действительно не нравятся складывающиеся редакторы, но это было бы довольно терпимо - вы бы хотели, чтобы он мог легко переключаться на него. Возможно, кто-то уже сделал это для гиперпрограммируемых редакторов, таких как vim и emacs?

Ответ 7

Я думаю, что Xcode 3 делает примерно то, что вы хотите, особенно с Фокус следует за выбором включен. Отдельные блоки подсвечиваются, когда вы наводите их на боковой панели.

Ответ 8

Вы должны попробовать этот Addin, и вы никогда не будете работать в визуальной студии без него, http://www.jetbrains.com/resharper/features/index.html

PS: Я не являюсь аффилированным лицом этой компании или продукта, но я наркоман, использующий его, и я никогда не могу работать без него, это экономит мне много времени в моих задачах по кодированию и поиске и отладке кода.

Ответ 10

Также есть свободное расширение, которое по крайней мере рисует направляющие линии, окрашенные в соответствии с тем, к чему они принадлежат. Например, if проводники зеленого цвета и т.д.:
Example screenshot

Он называется StructureAdornment, и вы можете получить его в Диспетчере расширений или Галерея Visual Studio.

Мне очень удобно.

Ответ 11

расширение allmargins работает для меня в visual studio 2010

Инструмент → Менеджер экспансии → поиск allmargins