一个自动折叠括号的文本编辑器?

时间:2009-11-06 12:31:38

标签: editor text-editor folding parentheses

我正在调试一些非常混乱的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来折叠它。但是其中一些东西长达数百行,如果我有一个可以自动标记整个文档的编辑器,那就太好了。

有什么建议吗?

4 个答案:

答案 0 :(得分:1)

我认为它不会折叠,但如果您使用的是SQL Server,我强烈建议SQL Prompt包括重新格式化SQL的命令。在调试/理解庞大而笨重的存储过程时,我发现这是一个巨大的帮助。

答案 1 :(得分:1)

我需要做类似的事情。我发布了评论请求并建议(你可以说一个RFC)。它的链接在这里:Stack Overflow。我很惊讶它不是大多数编辑器的标准功能。我想问题是它比从一个字符流中解析分隔的文本块更难。也许XML和CSS将来会更容易做出类型的东西。

答案 2 :(得分:1)

有关emacs的信息,请参阅HideShow mode,这在lisp模式下完全符合您的要求。

答案 3 :(得分:0)

编辑:没关系,它不起作用。 )未被视为接近。留下答案让没有人浪费时间去尝试。

如果您愿意分割线条,那么一行上只有一个打开或关闭的括号,您可以使用Notepad ++中的用户定义语言,并使文件夹打开()。分别关闭。您还可以定义SQL关键字和注释分隔符,以便它们变为彩色。 Notepad ++当然内置了SQL,但内置定义不会在括号中折叠。