代码之家  ›  专栏  ›  技术社区  ›  user1685095

有没有一种方法可以用Gradle/Maven输出所有可导入的类?

  •  -1
  • user1685095  · 技术社区  · 6 年前

    我是一个VIM/NeVIM用户,我想知道我是否可以简化在没有使用ItLILJ或语言服务器的情况下向文件Java添加导入的任务。 所以我的想法是得到一个所有类的列表,然后用这个列表以某种方式插入一个import语句。

    来说明我的想法。假设我的光标在这里。

    var a = List.of(1);
            ^
    

    我正在调用一些vimscript,它为我提供了可筛选的导入列表,其中包括 List

    也许是类似于胡瓜的东西?

    3 回复  |  直到 6 年前
        1
  •  0
  •   lance-java    6 年前

    您可以编写一个渐变任务,将所有类输出到一个文件中。如

    task dumpClasses {
        inputs.files configurations.compile
        outputs.file "$buildDir/dumpClasses.txt"
        doLast {
            file("$buildDir/dumpClasses.txt").withWriter { writer ->
                configurations.compile.each { file ->
                    FileTree tree = file.name.endsWith('.jar')
                       ? zipTree(file)
                       : (file.directory ? fileTree(file) : null)
                    if (tree) {
                        tree.matching { include '**/*.class' }.each {
                            writer.println(it.name)
                        }
                    } 
                }
            } 
        } 
    } 
    
        2
  •  0
  •   Thorbjørn Ravn Andersen    6 年前

    如今,JavaIDE非常聪明,使用任何其他东西都是在浪费你的时间(因此间接地浪费金钱)。

    它非常类似于使用记事本而不是单词until(或vim而不是libreoffice),直到您想要进行语法检查和嵌入图形等。当然,您可以在足够的时间或肘部润滑脂的情况下完成它,但为什么要在路上重新发明所有轮子。Emacs早在2000年初就有了一个非常实用的Java开发环境,当它出现时,它几乎立即消失了。

    例如,Intellij现在知道如何在方法调用链中显示当前点的类型(在流中非常频繁),可以说它简短 非常 以后阅读代码时很有用。

    IntelliJ screen shot

    所以,为了得到您需要的东西,您无论如何都需要一个能够理解您的代码的IDE。如果您想使用VIM的全部功能,可以考虑让一个IDE在您的源代码上启动VIM吗?Intellij可以在不被告知的情况下获取文件系统中的更改。

        3
  •  -1
  •   Martijn    6 年前

    看一看 vim-javacomplete2 . 其功能之一是自动添加导入,包括 static 导入和导入嵌套类。它使用maven、gradle或eclipse的.classpath文件自动搜索类文件。