是否可以在IntelliJ IDEA中使用多行待办事项?


Answers:


53

不,暂时不。

已经讨论了此功能,但尚未实现。

编辑/更新:

它在2018.3版本中实现。


12
请花一点时间访问该链接,并对问题进行投票,以优先处理此票证。右侧的“投票者”旁边有一个thumbsup图标。
adamdport

2
现在,此功能已在EAP中的IDEA 2018.3中实现。blog.jetbrains.com/idea/2018/09/…–
大卫

现在基于IDEA 2018.3,适用于带有Android Studio 3.4的Android版本
shaktiman_droid

54

自2018.3开始受支持

多行TODO注释

多行TODO注释

IntelliJ IDEA 2018.3现在支持多行TODO注释,现在在编辑器中突出显示了第一行和所有以后的TODO注释行,并在TODO工具窗口中列出了这些行。只需从多行TODO注释的第二行开始添加缩进,IDE就会将其与普通注释区分开。


谢谢!很有用。唯一的问题是,当我单击Ctrl-Alt-L格式化文件时,缩进将被删除。任何想法如何防止这种情况?
Gep

27

在我的设置中,我将这种正则表达式用于多行TODO:

\/(\/|\*)[ ]*\btodo\b(.|\n)*(\*\/|)

唯一的问题是它不会突出显示多行注释的最后* /符号。如果有人能解决这个问题,那就太好了!


1
至少发现了两个与此Android Studios有关的潜在错误(或者我可能是错误)。一个,由于某种原因,它使我的项目中单个类的回购索引无法进行。每次也都是同一堂课。从TODO列表中删除它,并对其进行适当的重新索引。其次,它会在IDE加载时产生StackOverflow问题,但是IDE不会发布警告或强制关闭等任何内容,因此我不确定其严重性。我将继续研究它,但是如果有人遇到它,则值得一提。话虽这么说,但它确实确实应该做的事情。
zgc7009 '16

嗨,zgc7009!您能在这里发表您的TODO评论吗?越来越多的人看到它-更快地我们就会发现问题:-)
NonGrate

5

你是这个意思吗 使用待办事项清单

/**
 * todo multi-line
 *  
 */

2
谢谢你的回答。如果块中的所有行都属于待办事项并用蓝色突出显示,那将是很好的。但这是我们目前拥有的最接近的东西。
jhegedus 2014年

5

您可以通过以下选项卡使用FIXME和TODO

//FIXME: first line
//<tab> second line
//<tab> third line

有关更多信息,请参阅文档


3

基于NonGrate的答案:

转到设置,搜索TODO设置,然后将现有的todo条目“ \ btodo \ b。* ”替换为:

(\btodo\b.*)|(\/\*(\*(?!\/)|[^*])*\btodo\b(\*(?!\/)|[^*])*\*\/)

结果:

在此处输入图片说明

您必须使用* /关闭突出显示。

它使用2种模式:

  1. (\ btodo \ b。捕获带有单词dodo的任何行
  2. (/ \ *(\ *(?!/)| [^ *])* \ btodo \ b(\ *(?!/)| [^ *] * \ * /)捕获以/ *和以* /结尾

任何其他组合可能均无效。

注意:您必须替换现有的正则表达式,以避免在待办事项列表中出现同一待办事项的多个实例。


刚刚在Mac上的IntelliJ 2017.1.3中使用了它,效果很好。谢谢!
yokeho

2
在当前的Android Studio中,它不能像上述@Jeremy一样工作...但是它可以在* /之后的TODO测试之前使用/ **测试工作
Codeversed

3
警告:这只会将IntelliJ和Android Studio分解为十亿个碎片。它具有RegEx递归,由于RegEx表达式的编译方式以及导致SO的难易程度(这确实会导致这种情况),在Java开发中这几乎被认为是一个罪过。
mradzinski '17

-1

此正则表达式适用于我:

(?:(?:todo|TODO)(?:\[[A-Z,a-z]+\-\d+\])?\s(\s*\b.*\b)*)|(?:\/\*\s*(?:todo|TODO)(?:\[[A-Z,a-z]+\-\d+\])?\s(?:(?!\*\/)[\s\S])*\*\/)

它基本上寻找以下内容:

  • 一个todoTODO关键字(可选)在方括号中加上票证/问题ID以及在单个空格字符之后的任意数量的字符后缀。
  • 一个Java多行注释,以/ *开头,后跟任意数量的空格,然后是上述单行待办事项中概述的条件。一旦在以下任何行中找到* /,它就会终止。

单行示例:

todo some very important stuff
TODO[SAOY-1376] An urgent bug fix described in the SAOY-1376
// todo some very important stuff
// TODO[SAOY-1376] An urgent bug fix described in the SAOY-1376

多行示例:

/* todo assignee or something
    a very important message
    another thing
*/

/* TODO[SAO-13]
 * a very important message
 * another thing
*/
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.