2009-11-06 57 views
1

我有我调试的一些大的凌乱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-倒班]选择一组,然后按Ctrl-MH崩溃了。但其中一些内容长达数百行,如果我有一个可以自动标记整个文档的编辑器,那将会很不错。

有什么建议吗?

回答

1

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

1

我需要做类似的事情。我发布了一个评论和建议请求(你可以说RFC)。链接到这里:Stack Overflow。我很惊讶它不是大多数编辑器的标准功能。我想这个问题是,它看起来比从字符流中分析分隔的文本块更困难。也许XML和CSS将会使未来更轻松地完成这种类型的事情。

0

编辑:没关系,它不起作用。 )没有被视为接近。离开答案让别人浪费他们的时间去尝试。

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

1

请参阅HideShow mode for emacs,它在lisp模式下完全符合您的需求。