如何使用快捷方式在 Sublime Text 中应用 lsp 快速修复

如何使用快捷方式在 Sublime Text 中应用 lsp 快速修复

这是角度属性指令的一个例子。@HostListener未在类中导入。

import { Directive, ElementRef, HostBinding, Renderer2 } from "@angular/core";

@Directive({
  selector: "[appDropdown]",
})
export class DropdownDirective {
  constructor(
    private readonly elementRef: ElementRef,
    private readonly renderer2: Renderer2,
  ) {}

  @HostBinding("class.open") isOpen = false;

  @HostListener("click")
  toggle() {
    const element = this.elementRef.nativeElement;
    const isOpen = element.classList.contains("open");

    // element.classList.toggle("open", !isOpen);

    if (isOpen) {
      this.renderer2.removeClass(element, "open");

      return;
    }

    this.renderer2.addClass(element, "open");

    this.isOpen = !this.isOpen;
  }
}

我从 lsp quik fix 中得到了几个选择。如何使用一些快捷方式应用 lsp quick fix?

答案1

在 LSP 中,他们称之为“代码操作”。他们的文件

代码操作是“快速修复”和“重构”的总称。它们是更改文件(或多个文件)以解决诊断或应用标准重构技术的操作。例如,将代码块提取到单独的方法中通常称为“提取方法”,是一种“重构”。而“添加缺少的分号”将解决警告缺少分号的诊断。

您可以通过以下方式设置快捷方式:

  1. 打开Preferences: LSP Key Bindings(ctrl+shift+p,LSP 键绑定)
  2. 搜索Run Code Action,将块复制到右侧面板,然后取消注释
  3. 指定一个快捷方式。我选择了ctrl+.,它模仿 VSCode:
    // Run Code Action
    {
        "keys": ["ctrl+."],
        "command": "lsp_code_actions",
        "context": [{"key": "lsp.session_with_capability", "operand": "codeActionProvider"}]
    },

相关内容