【问题标题】:Underlining a java code line in source code在源代码中为 java 代码行加下划线
【发布时间】:2018-10-30 07:36:29
【问题描述】:

以下是我的 Java 代码

import java.io.*;

public class UnderLine {
    public static void main(String[] args) throws Exception {
        String thisLine = null;
        String Test = "Hello";

        try {
            // open input stream test.txt for reading purpose.
            BufferedReader br = new BufferedReader(new FileReader("F:\\Java\\Testprojects\\UnderLine.java"));
            while ((thisLine = br.readLine()) != null) {
                if(thisLine=="        String Test = \"Hello\";\n") {    
                    // underLine the line which has String test
                }
            }
        } catch(Exception e) {
            e.printStackTrace();
        }
    }
}

在上面的代码中,我通过给出它的路径来读取相同的源代码。我想用

在代码行下划线(单词下面的红线,好像发生了正常的代码错误)
String Test = "Hello";.

我该怎么做?

【问题讨论】:

  • 你想给你的代码加下划线吗?目的是什么?
  • @HamishD 我想知道当程序中发生错误时(编译前),字符串如何以红色下划线显示
  • 它是您使用的任何 IDE 的一部分,而不是代码。如果你用记事本打开代码,就没有红线了。
  • @HamishD 是的,我想用我的程序实现那个 IDE 功能,我该怎么做?
  • 无法将函数用于您自己的没有错误的代码。你需要它的目的是什么?

标签: java underline


【解决方案1】:

您所要求的(在实际的 Java 源代码文件中加下划线)是不可能的。编译文件时,在源代码中添加任何形式的标记都会导致 Java 语法错误。

如果您真的想查看 Eclipse IDE 中带有下划线和其他由 Eclipse 添加的标记的源代码,那么您需要开发一个 Eclipse 插件来执行此操作。该插件将利用相关的 Eclipse API 在 IDE 中打开文件时在视图中添加突出显示。标记的“源”需要与 Java 源文件分开保存。

【讨论】:

  • 那么Sonarlint之类的插件怎么会在有质量问题的字符串下划线却编译不出任何错误呢?
  • 因为他们向您展示了带有下划线的源的视图。 SonarLint 不会将下划线添加到源文件本身。
  • 是的,我需要添加这样的视图!有可能吗?
  • 是的,如果您编写自己的 Eclipse 插件,这是可能的。我不知道现有的插件可以做到这一点。许多插件使用下划线,但AFAIK没有一个允许您手动应用样式。 (您应该寻找的 Eclipse API 功能显然是 StyledText ...。)
【解决方案2】:

正如评论者已经说过的,Java 源文件中不可能有任何格式,因为它们是纯文本文件。

由于您使用 IntelliJ,您只需按键盘上的 F11 即可在当前行中创建一个书签。您将看到滚动条中出现一条白线,可让您轻松返回该行代码。要查看您在整个项目中放置的所有书签,请按 Shift+F11。您可以在in the IntelliJ help section 找到有关该主题的更多信息。

【讨论】:

  • 我不能使用 openapi 和 SyntaxHighlighter 类添加视图吗?
  • 你这是什么意思?另外,首先考虑一下为什么要这样做。为什么要突出显示该行?如果是出于解释性原因,请在该行上方添加注释。如果您希望更轻松地找到该行,请使用 F11 放置一个书签。不要在高亮上花费太多时间,因为这对用户没有任何好处。
猜你喜欢
  • 2022-10-22
  • 1970-01-01
  • 1970-01-01
  • 2015-10-28
  • 2012-02-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-05
  • 2011-05-01
相关资源
最近更新 更多