Текстовый редактор с автоматическим сворачиванием скобок?

У меня есть несколько больших беспорядочных процедур SQL, которые я отлаживаю, и они, как правило, имеют много сильно вложенных круглых скобок:

SELECT * FROM (SELECT F1,F2 FROM TABLE1 AS X LEFT JOIN 
(SELECT F9,F8 FROM (SELECT F13,F14 FROM TABLE4) AS J INNER JOIN TABLE3 ON...) AS B 
ON X.F1=B.F9) AS X1

Я ищу редактор, который может автоматически отмечать и, при желании, сворачивать / сворачивать каждую скобку, установленную для облегчения чтения, например

SELECT * FROM ... AS X1

SELECT * FROM (SELECT F1,F2 FROM TABLE1 AS X LEFT JOIN ... AS B ON X.F1=B.F9) AS X1

Я могу сделать это в Visual Studio, несколько раз нажав ctrl-shift-], чтобы выбрать набор, а затем ctrl-mh, чтобы свернуть его. Но некоторые из этих вещей состоят из сотен строк, и было бы неплохо, если бы у меня был редактор, который мог бы автоматически размечать весь документ.

Какие-либо предложения?


person SteveSmithSQL    schedule 06.11.2009    source источник


Ответы (4)


Я не думаю, что это поможет вам сворачивать, но если вы используете SQL Server, я настоятельно рекомендую Запрос SQL, который включает команду для переформатирования SQL. Я обнаружил, что это очень помогает при отладке / понимании огромных и громоздких хранимых процедур.

person FinnNk    schedule 06.11.2009

Мне нужно сделать то же самое. Я отправил запрос на комментарии и предложения (можно сказать, RFC). Ссылка на него находится здесь: Стек Переполнение. Я удивлен, что это не стандартная функция в большинстве редакторов ... Думаю, проблема в том, что разобрать блоки текста с разделителями из потока символов сложнее, чем кажется. Возможно, XML и CSS упростят создание тонких вещей в будущем.

person vo1stv    schedule 13.09.2010

См. HideShow mode для emacs, который делает именно то, что вы хотите в lisp- режим.

person Phob    schedule 01.12.2010

Изменить: Неважно, это не работает. ) не рассматривается так близко. Оставить ответ, чтобы никто не тратил время зря на его попытки.

Если вы хотите разделить строки так, чтобы в строке была только одна открывающая или закрывающая скобка, вы можете использовать язык, определяемый пользователем, в Notepad ++ и сделать ( и ) папку открытой и закрытой соответственно. Вы также можете определить ключевые слова SQL и разделители комментариев, чтобы они были окрашены. В Notepad ++, конечно же, встроен SQL, но встроенное определение не складывается в круглые скобки.

person Hugh Brackett    schedule 13.09.2010