当前位置: 首页 > 软件库 > Web应用开发 > Web框架 >

lsp-mode

授权协议 GPL-3.0 License
开发语言 JavaScript
所属分类 Web应用开发、 Web框架
软件类型 开源软件
地区 不详
投 递 者 端木皓君
操作系统 跨平台
开源组织
适用人群 未知
 软件概览
title description
LSP Mode - Language Server Protocol support for Emacs
Language Server Protocol support with multiples languages support for Emacs

Language Server Protocol Support for Emacs


homepageinstallationlanguagessettingstutorialstroubleshootingscreenshotsFAQ


Why?

  • ❤️ Community Driven
  • �� Fully featured - supports all features in Language Server Protocol v3.14.
  • �� Fast - see performance section.
  • �� Flexible - choose between full-blown IDE with flashy UI or minimal distraction free.
  • ⚙️ Easy to configure - works out of the box and automatically upgrades if additional packages are present.

Overview

Client for Language ServerProtocol(v3.14). lsp-mode aims toprovide IDE-like experience by providing optional integration with themost popular Emacs packages like company, flycheck and projectile.

  • Non-blocking asynchronous calls
  • Real-time Diagnostics/linting viaflycheck (recommended) orflymake when Emacs > 26 (requires flymake>=1.0.5)
  • Code completion - company-capf / completion-at-point (note thatcompany-lsp is nolonger supported).
  • Hovers - using lsp-ui
  • Code actions - via lsp-execute-code-action, modeline (recommended) or lsp-ui sideline.
  • Code outline - using builtinimenuor helm-imenu
  • Code navigation - using builtinxref,lsp-treemacs tree viewsor lsp-ui peek functions.
  • Code lens
  • Symbol highlights
  • Formatting
  • Project errors on modeline
  • Debugger - dap-mode
  • Breadcrumb on headerline
  • Helm integration -helm-lsp
  • Ivy integration - lsp-ivy
  • Consult integration - consult-lsp
  • Treemacs integration -lsp-treemacs
  • Semantic tokens as defined by LSP 3.16 (compatible language servers include recent development builds of clangd and rust-analyzer)
  • which-key integrationfor better discovery
  • iedit
  • dired
  • ido

Presentations/demos

See also

  • lsp-docker - providedocker image with preconfigured language servers with correspondingemacs configuration.
  • company-box -company frontend with icons.
  • dap-mode - Debuggerintegration for lsp-mode.
  • eglot - An alternativeminimal LSP implementation.
  • which-key - Emacspackage that displays available keybindings in popup
  • projectile - ProjectInteraction Library for Emacs
  • emacs-tree-sitter - Faster, fine-grained code highlighting via tree-sitter.
  • gccemacs - modified Emacs capable of compiling and running Emacs Lisp as native code.

Contributions

Contributions are very much welcome.

Support the project

The emacs-lsp organization has more than 20.000 lines of code, to keep all of this working,we need to implement new features and help the community on a lot of issues.

You can help us keep going and improving it by supporting the project

Members

Here it is a list of the current lsp-mode members and what they areprimary working on/responsible for.

kurnevsky
kurnevsky

Scala | Rust
seagle0128
seagle0128

Go | Python MS
sebastiansturm
sebastiansturm

lsp-mode core | C++
vibhavp
vibhavp

lsp-mode core
yyoncho
yyoncho

lsp-mode core | Java
ericdallo
ericdallo

Dart/Flutter | Clojure
danielmartin
danielmartin

C++ | Swift
kiennq
kiennq

completions | pwsh
nbfalcon
nbfalcon

lsp-mode core | iedit
  • LSP是Layered Service Provider的缩写,是介于winsock和应用程序之间的一层。可以让我们实现数据的侦听、拦截和修改。 LSP入门的最简单方式是自己编译一个例子运行一下: 首先,安装一下windows sdk,win7版的下载页面:http://www.microsoft.com/en-us/download/details.aspx?id=18950 带X的是64位版。

  • Layered Service Provider即分层服务提供商或者“浏览器劫持”。 某些间谍软件会修改 Winsock2 的设置,进行 LSP “浏览器劫持”,所有与网络交换的信息都要通过这些间谍软件,从而使得它们可以监控使用者的信息。著名的如 New net 插件或 WebHancer 组件,它们是安装一些软件时带来的你不想要的东西。 LSP 故障现象 “浏览器劫持”后出现的症状: 1、被重定

  • LSP标识符(LSP ID)        路由器生成的每个LSP都有一个LSP标识符(LSP ID),LSP主要用来标识不同的LSP和生成LSP的源路由器。就像OSPF中一样,每个LSA都使用通告路由器(通告此LSA的路由器的Router ID)进行标识。每个LSP ID都包括三个部分:  SysID  伪节点标识符(Pseudonode ID)  LSP编号(LSP number)      

  • 里氏代换原则(Liskov Substitution Principle LSP)面向对象设计的基本原则之一。 里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。 LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。里氏代换原则是对“开-闭”原则的补充。实现“开-闭”原则的关键步骤就是抽象化。而基类

  • LSP,SPI动态链接库(VC) //********** DEF LIBRARY EXPORTS WSPStartup //********** C++ #define UNICODE // 必须 #define _UNICODE // 必须 #includ

  • 转自:http://blog.163.com/sdm1980@126/blog/static/810260352010680522138/ LSP: Label Switch path 标签交换路劲 AF:Assured Forwarding 确保转发 EF:Expedited Forwarding 加速转发 PHB:Per-hop Behavior 单中继段行为,指IP转发中每一跳的转发行为  

  • LSP的建立过程实际就是将 FEC 和标签进行绑定,并将这种绑定通告 LSP上相邻LSR。这个过程是通过 LDP实现的。下面结合下游自主标签发布方式和有序标签控制方式来说明其主要步骤:  1.  当网络的路由改变时,如果有一个边缘节点发现自己的路由表中出现了新的目的地址,并且这一地址不属于任何现有的 FEC,则该边缘节点需要为这一目的地址建立一个新的 FEC。  2.  如果 MPLS 网络的出节

  • .lsp是AutoCAD软件的Lisp脚本文件.当打开AutoCAD图形dwg文件时会自动运行相同文件夹中的名为acad.lsp的脚本文件。这使得.lsp文件成为计算机病毒在装有AutoCAD软件的电脑之间传播的一种方式。

  • lsp 客户端,如果在使用virtualenvwrapper-win的情况下,仅需要,并且仅能安装于虚拟环境当中 python请使用lsp-pyls lsp-jedi用不了。

 相关资料
  • Language Server Protocol integration for Jupyter(Lab) This project is still maturing, but you are welcome to check it out, leave feedback and/or a PR Quick Links: Installation | Configuring | Changelo

  • 来自Liskov替代原理-www.blackwasp。co.uk 不符合LSP的一个常见指示是当客户端类检查其依赖项的类型时。这可以通过读取人为描述其类型的对象的属性或通过使用反射来获得类型。通常,根据依赖项的类型,将使用开关语句执行不同的操作。这种额外的复杂性也违反了打开/关闭原则(OCP),因为随着更多子类的引入,客户端类需要修改。 以下技术(使用反射)是否会导致违反LSP? 依赖注入 注:我

  • 问题内容: Liskov替换原理是SOLID的原理之一。我已经读过几次这个原理,并试图理解它。 这就是我的所作所为, 此原则与类层次结构之间的强行为契约有关。子类型应该能够被超类型替换而不会违反合同。 我也读过其他文章,对这个问题我有些失落。难道方法不违反LSP? 上面链接的文章摘录: 换句话说,当通过对象的基类接口使用对象时,用户仅知道基类的前提条件和后置条件。因此, 派生对象不能期望此类用户遵

  • 我问这个问题更多的是出于好奇,而不是真正关心它,但我一直想知道JavaScript事件系统是否违反了Liskov替换原则(LSP)。 通过调用,我们可以调度任意类型的,该事件可能由注册的处理。 如果我正确理解了LSP,那就意味着不应失败。但是,通常情况并非如此,因为事件侦听器通常会使用专门的子类型的属性。 在不支持泛型的类型化语言中,这种设计基本上需要将对象向下转换为中的预期子类型。 根据我的理解

  • 问题内容: 我的情况与Code Complete中Steve McConnell 提到的情况非常相似。我唯一的问题是基于车辆,而三轮车恰好是根据法律,属于汽车。到目前为止,汽车只有四个轮子。无论如何,我的域都不必要地复杂,因此很容易遵循下面的cats示例。 对重写例程并且在派生例程中不执行任何操作的类要保持怀疑。这通常表明基类的设计存在错误。例如,假设您有一个Cat类和一个例程Scratch(),

  • Liskov替代原则要求 子类型中的前提条件不能加强 任何人都可以发布一个违反上述每一点的例子和另一个解决这些问题的例子吗?