IntelliJ IDEA – 深入编辑器



编辑器是开发人员花费大部分时间的地方。掌握编辑器是提高任何资源生产力的第一步。本章讨论编辑器的可视元素、最常见的编辑器操作和SonarLint插件,该插件提供代码风格检查。

编辑器的可视元素

IntelliJ IDEA 具有许多功能,包括旨在帮助开发人员浏览和理解其代码实际状态的可视元素。

现在让我们来看一下不同的功能:

代码行号区域

编辑器的代码行号区域位于IDE的左侧,如下图所示:

Gutter Area

标签

我们现在将了解标签的工作原理。上面的屏幕截图用数字标记。我们现在将看到这些数字代表什么:

  • 在这里,我们可以看到行号以及其他有用的选项。如果您仔细观察,在类名和main方法之前有一个小的绿色三角形。它提供运行、调试和运行带有覆盖率的应用程序的选项。只需单击三角形图标,它将提供选项。

  • 您可以在第6行看到一个小加号符号。这是代码折叠功能。如果单击该图标,它将展开代码。代码折叠可以在类、方法、循环和其他块级别进行。

  • 在第11行和第14行,有两个相互指向的箭头。标记代表方法的起始和结束位置。如果单击任何箭头,它将对该代码块执行折叠操作。当采取某些操作时,代码行号区域将显示各种符号;例如,它将显示断点、Java注释的符号。

状态栏

在编辑器窗口的底部,有一个状态栏,显示有关当前文件和项目状态的信息。

Event Log Status Bar
  • 在第一张图片中,16:1分别代表当前行号和列号。

  • 接下来是行分隔符,对于UNIX和macOS,它是\n,对于Windows,它是\r\n。

  • UTF-8 表示文件编码。

  • 接下来是图标。我们可以通过单击它来切换文件的只读属性。

  • 最后,有一个带有人脸的符号。它允许管理代码检查级别。

    • 当我们在编辑器中键入代码时,IntelliJ IDEA 会实时检查代码并显示提示/建议。我们可以从此处决定检查级别。例如,我们可以完全禁用它,或者只允许对语法进行检查等。

    • 我们还可以从此处启用省电模式,这将禁用后台代码分析和其他后台作业。

  • 状态栏还显示有关项目操作的信息。例如,第二张图片显示有关项目编译的信息。

临时文件

IntelliJ IDEA 提供了一个临时编辑器。您可以在不修改当前项目结构的情况下创建文本或代码片段。它提供两种类型的临时文件:

临时文件

它们是可运行的、可调试的。要创建临时文件:

  • 转到文件 → 新建 → 临时文件

  • 选择您选择的语言。

  • 它将在IntelliJ安装目录\config\scratches文件夹中创建一个文件。

临时缓冲区

这仅用于创建任何文本。要创建临时缓冲区:

  • 按Ctrl + Shift + A或单击“搜索任何内容”图标

  • 它将弹出一个对话框。

  • 在该框中输入新的临时缓冲区文本,然后按Enter键。

  • 它将在编辑器窗口中打开临时缓冲区。

与临时文件一样,临时缓冲区也存储在IntelliJ安装目录\config\scratches文件夹中。

滚动条

滚动条突出显示代码中的警告/错误消息/TODO标记。例如,sayHello()和sayGoodBye()方法从未使用过;因此,滚动条为它们显示黄色标记。

Scrollbar

在第8行,有一个TODO注释,滚动条使用蓝色标记突出显示它。错误使用红色标记突出显示。

编辑器操作

在本节中,我们将讨论IntelliJ IDEA中的编辑器操作。

搜索和替换

要在当前文件中搜索文本:

  • 导航到编辑器窗口中的文件并按Ctrl+F。

  • 它将显示文本框,在此处键入要搜索的文本。

  • 您可以在此处提供各种选项 - 区分大小写匹配、精确匹配、正则表达式等等。

Editor Actions

您可以非常细致地执行搜索操作。例如,可以在项目、模块或目录级别进行搜索:

  • Ctrl+Shift+F组合键。

  • 将出现一个新窗口;从此处,您可以选择合适的级别。

New Window

要在当前文件中执行替换操作:

  • Ctrl+R组合键。

  • 将出现一个对话框,在此处输入要替换的文本。

  • 此操作允许您替换单个匹配项、所有匹配项或跳过当前匹配项。

Replace Single

要在更细致的级别执行替换操作:

  • Shift+Ctrl+R组合键。

  • 它允许您在项目、模块、目录和其他范围内替换文本。

列选择模式

要启用列模式选择,请在选择文本时按住Alt键。要永久启用列选择模式,请选择编辑 → 列选择模式

Column Selection

剪贴板历史记录

当我们复制任何文本时,它将进入剪贴板历史记录。IntelliJ IDEA 保持剪贴板历史记录。要查看此历史记录,请按Ctrl+Shift+V组合键。您可以从此窗口中选择要粘贴的内容。

Clipboard History

代码补全

IntelliJ IDEA 会实时检查代码并提供准确的代码补全。例如,当我键入单词say时 - 它建议sayHello()sayGoodBye()方法。

Code Completion

在使用类对象时,代码补全会建议类属性和类方法。

生成代码

IntelliJ IDEA 提供了一种生成有用代码的方法,例如构造函数、getter、setter、toString()方法、覆盖方法等等。请按照以下步骤在编辑器窗口中右键单击。

  • 选择生成选项。

  • 它将列出可以生成代码的方法。

Generate Option

代码检查

我们已经看到IntelliJ IDEA可以识别语法错误、警告消息和TODO标记。除此之外,它还建议代码改进、识别无效代码、代码优化。例如,在下面给出的代码中,flag的值始终为true。因此,else部分将永远不会执行。

boolean flag = true; 
if (flag == true) { 
   System.out.println("Value of flag is true"); 
} else { 
   System.out.println("Value of flag is false"); 
}

IntelliJ IDEA 会识别这一点并建议删除此代码块。

Code Inspection

比较文件和文件夹

请按照以下步骤比较文件和文件夹:

  • 按住Ctrl键,从项目视图中选择要比较的文件。

  • 右键单击它并选择比较文件选项。

  • 它将打开比较窗口,其中突出显示更改。

您还可以将更改从一个文件应用到另一个文件。如果您观察到,有两个箭头标记以红色突出显示。单击它们以应用来自其他文件的内容。按Ctrl+Z撤消更改。

类似地,要比较文件夹,请选择项目视图中的文件夹而不是文件。

Compare Files

获取帮助

如果您能轻松获得有关代码的详细信息,这将非常有用。例如方法描述、其返回类型、参数类型和参数数量——IntelliJ IDEA可以在编辑器窗口本身中提供这些详细信息。

内联文档

顾名思义,IntelliJ IDEA可以通过从代码中提取文档来访问文档。如果您为代码提供JavaDoc,则IntelliJ IDEA可以显示有关它的帮助。要访问内联文档,请将鼠标悬停在方法名称上并按Ctrl+Q组合键。

Inline Documentation

查看定义

要查看定义,请将鼠标悬停在方法名称上并按Ctrl+Shift+I组合键。

Viewing Definition

显示用法

要查看方法用法,请单击方法声明/定义并按Alt+Ctrl+F7组合键。

Show Usage

查看参数

要查看方法参数,请键入方法名称并按Ctrl+P组合键。

View Parameters

代码风格检查

代码风格检查是一个过程,其中代码风格检查工具分析源代码并报告与代码标准相关的潜在问题。它有助于提高代码质量。IntelliJ IDEA 支持SonarLint插件,该插件可以进行代码风格检查。

关于SonarLint

安装并启用SonarLint插件后,它将在您在编辑器窗口中打开文件时自动开始分析代码。它将在SonarLint面板中报告问题。我们将在本节中进一步讨论。

SonarLint支持流行的编程语言,例如Java、JavaScript、PHP和Python。

安装

请按照以下步骤安装SonarLint:

  • 从此处下载SonarLint:此处

  • 转到文件 → 设置 → 选择插件

  • 单击从磁盘安装插件按钮。

  • 按照屏幕上的安装说明完成安装过程。

On-screen Installation

代码分析

安装并启用插件后,它将开始实时分析代码。它将在SonarLint面板中报告问题。请按照以下步骤查看当前文件的问题:

  • 单击“当前文件”选项卡。

  • 它将报告诸如未使用的局部变量、未使用的类属性、消息日志记录等问题。

  • 要了解有关问题的更多信息,请单击SolarLint面板中的问题。

  • 在窗口的右侧,它将显示其严重性,例如主要、次要等等。

Severity as Major

进行一次性代码分析

如果您不习惯实时代码分析,则可以禁用它,并在准备好代码后执行一次性代码分析。请按照以下步骤禁用实时代码分析:

  • 转到文件 → 设置 → 其他设置 → SonarLint常规设置

  • 在设置选项卡中取消选中自动触发分析复选框。

  • 单击应用,然后单击确定按钮。

Automatically Trigger Analysis
广告
© . All rights reserved.