是否可以注释掉包含注释的代码块?

时间:2015-05-21 13:45:46

标签: oracle plsql oracle-sqldeveloper

说我有这样的代码

some_line_of_code
some_line_of_code
/* some comment about code */
some_line_of_code
some_line_of_code

我想评论出像这样的整个块

/*
    some_line_of_code
    some_line_of_code
    /* some comment about code */
    some_line_of_code
    some_line_of_code
*/

正如您所看到的,甚至SO代码解析器也不会考虑最后2行代码注释。是否可以注释掉包含注释的代码块?

编辑: 为了澄清,我需要这个能够注释掉大部分代码,以检查我更改的函数是否可以在一个包中编译,否则无法编译直到所有更改都完成。

6 个答案:

答案 0 :(得分:11)

在SQL Developer中,我突出显示了我想要评论的所有PL / SQL行,并使用 Ctrl + /

显然,您想要一种快速评论和取消注释多行的方法。这会将--放在您突出显示的每一行的前面。执行相同的命令取消注释。

答案 1 :(得分:3)

您可以通过工具>首选项>按键配置(编辑/选择/注释行)来分配功能键。

答案 2 :(得分:2)

正如@Acroneos所说,没有办法。这是大多数编程语言的常见行为。词法分析员会识别评论以及其他代币。词法分析器使用无上下文语法。 lexes通常只能识别reqular表达式。

您仍然可以使用C / C ++方法(#if 0 / #endif)。见Conditional compilation。但它看起来并不“那么好”。

begin
 something1;
 $if false $then
  something2;
 $endif;
endl;

答案 3 :(得分:1)

您可以使用 -

所以这段代码:

some_line_of_code some_line_of_code -- some comment about code some_line_of_code some_line_of_code

将是:

--some_line_of_code --some_line_of_code ---- some comment about code --some_line_of_code --some_line_of_code

答案 4 :(得分:0)

不,因为第一个分隔符到下一个最后一个分隔符之间的所有内容都将被识别为注释(=未由编译器处理)。多线注释如何工作:如果识别出第一个分隔符(/ *),编译器将忽略任何内容,直到识别出下一个最后一个分隔符(* /)。现在你知道这一点,你应该能够理解为什么你的第二个/ *永远不会被编译器识别为注释分隔符。

但是,您可以在多行注释部门中使用特殊字符或连接标记注释,以将注释排列到不同的部分。

答案 5 :(得分:0)

注释行的快捷方式: Command + Option + / (在Mac中)