2015-05-21 4 views
3

Скажем, у меня есть код, как этотМожно ли комментировать блоки кода, содержащие комментарии?

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 строки кода Комментарии. Можно ли комментировать блоки кода, содержащие комментарии?

Редактировать: Чтобы уточнить, мне нужно это, чтобы иметь возможность комментировать большие разделы кода, чтобы проверить, может ли измененная функция компилироваться в пакете, который иначе не может быть скомпилирован до тех пор, пока все изменения не будут выполнены.

+1

Не знаете, какую IDE вы используете, но есть некоторые с большими ярлыками. Например, я выделяю каждую строку независимо от комментариев между ними, и однажды я нажимаю Cntrl +/.... Bam! Все строки были прокомментированы. Как я уже сказал, это спецификация IDE –

+0

. Я настолько привык к такой функциональности в Visual Studio, но я новичок в Oracle SQL Developer, в которой я использую atm. Какой идеал вы ссылались на это, это позволяет ctrl + /? –

+0

JetBrains имеет лучшую IDE, на мой взгляд. Существует множество версий для разных видов работы. Я работаю с PHP в основном, поэтому я использую PHPStorm, который хорошо работает с SQL, JS, HTML. Посмотрите здесь продукты - https: // www.jetbrains.com/products.html?fromMenu –

ответ

5

В SQL Developer, я выделяю все строки PL/SQL, которые я хочу комментировали и использовать Ctrl +/.

Очевидно, вы хотели бы быстро прокомментировать и раскомментировать несколько строк. Это положит -- перед каждой выделенной вами линией. Выполните ту же команду, чтобы раскомментировать.

0

Нет, потому что все между первым разделителем до следующего последнего разделителя будет распознаваться как комментарий (= не обрабатывается компилятором). То, как работают многострочные комментарии: если распознан первый разделитель (/ *), компилятор будет игнорировать все, пока не будет распознан самый следующий последний разделитель (* /). Теперь, когда вы это знаете, вы должны понимать, почему ваш второй/* никогда не будет распознан компилятором как разделитель комментариев.

Однако вы можете отмечать комментарии специальными символами или конкатенациями в многострочном секторе комментариев для вывода комментариев в разные разделы.

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

+0

Независимо от того, работает он или нет, это далеко не быстрый и элегантный способ прокомментировать большие разделы кода, чтобы проверить, может ли ваша функция скомпилироваться. –

+0

Этот подход отлично работает с Emacs. Выполняя область uncomment в выбранном регионе, удаляются только комментарии одного уровня. И, конечно, область комментариев добавит один уровень комментариев к каждой выбранной строке. – ibre5041

+0

Я всегда использую VS/SublimeText, и оба этих редактора имеют эту функцию добавления комментариев, на vb это (цитата), на C++ это // – Xakiru

1

Как было заявлено @Acroneos, нет путь. Это обычное поведение большинства языков программирования. Комментарии, а также символы toheres распознаются лексеры. И лексеры работают с контекстно-свободными грамматиками. то есть лекс обычно может распознавать только выраженные выражения.

Вы все еще можете использовать подход C/C++ (#if 0/#endif). См. Conditional compilation. Но это выглядит не так хорошо.

begin 
something1; 
$if false $then 
    something2; 
$endif; 
endl; 
Смежные вопросы