lsp-bridge -- 速度最快的语法补全插件

添加了对 OpenSCAD 的支持: https://openscad.org/

虽然能解决,但是给服务器擦屁股好累啊!

没事,干啥都累,关键是用心

1 个赞

请教下,这个报错是Python版本问题,还是缺 Module ?


Traceback (most recent call last):
  File "/Users/ethanlin/.emacs.d/site-lisp/lsp-bridge/lsp_bridge.py", line 47, in <module>
    from core.fileaction import (create_file_action_with_single_server,
  File "/Users/ethanlin/.emacs.d/site-lisp/lsp-bridge/core/fileaction.py", line 28, in <module>
    from core.lspserver import LspServer
  File "/Users/ethanlin/.emacs.d/site-lisp/lsp-bridge/core/lspserver.py", line 33, in <module>
    from watchdog.observers import Observer
ModuleNotFoundError: No module named 'watchdog'

Process *lsp-bridge*<1> exited abnormally with code 1

python装watchdog.

1 个赞

报错里面写了哦

是的, 这个watchdog是用来监控 workspace 的文件的, 比如 rust-analyzer, 如果发现 toml 文件改变后, 就让 rust-analyzer 自动重启 lsp server

1 个赞

谢谢大家,安装就可以了 :grinning:

1 个赞

Tabnine 还好用吗?

欢迎发送PR, 我现在很少用Tabnine了, 主要感觉这个公司都不维护了。

Tabnine 的 登入验证好像变了,需要 Token. 不太清楚怎么在 Emacs 中输入Tabnine 网站上生产的 Token. VC 倒是有: Using an authentication token

试着用 VC 登入,lsp-bridge 能发送请求: image

但是好像不能得到相应的 responses

tty-child-frame 好像不支持svg图标啊, 看来得找时间写一个nerd-icon版本的.

欢迎给 acm 发送兼容 terminal 的补丁。

tty-child-frame 是好的更新。

提了一个pr, 不过要增加一个nerd-icons.el的依赖并至少安装一种nerd font字体

原来这个变量 (defvar acm-icon-width 4) 有什么用呢? 我现在写死了 icon-text的形式就是 空格 + icon-text + 空格, 应该等于3, 所以我设置为3

先别合并这个pr, 我发现这个 tty-child-frame 在 terminal 下面经常闪退, 好像还不能日常使用, 先观察观察

这个4就是文字左边的宽度, 1个空格 + 2个字符宽度的图标 + 1个空格

我发现频繁闪退应该是 acm 的原因, 如果你只用gui或者tui, 都没有问题, 但是假设你用的是 daemon, 在tui模式下先补全一会, 然后焦点转为gui 就会直接崩溃, emacs强制退出, 我用的macos平台的kitty terminal, 其他的平台有没有这个问题就不清楚了. 我猜可能是 acm 没有考虑到 tui 的 switch frame的情况, 总之nerd-fonts 在tui下面渲染有点小瑕疵,跟崩溃无关.

我平常很少用 daemon 和 tui, 欢迎大佬补丁。

先放着,等我有时间慢慢来搞, 反正暂时够用了

1 个赞

最近发现个“性能”问题(可能也不算吧,只是vscode不知道怎么规避了),C++使用EigenEigen::的补全会非常非常慢(至少4、5秒),哪怕background-index已经完成了,看了下index出文件特别多,感觉是json处理的速度导致的?下面补充几个说明:

  1. Eigen::补全时加几个字符,比如Eigen::Mat (这是不是acm设好的feature哪,namespace后补全,::是不触发什么有用的补全信息,这个没问题哈)。对于instance的member的补全是没什么问题,我指var.这种。

  2. vscode很丝滑,不是太了解它怎么做的,是不是限制处理的量?因为从背后的index文件看确实挺多的。

  3. 其它库如armadillo之类的也不小,补全速度完全没问题。是不是因为eigen是header-only库,文件比较大,有人说了clangd解析eigen肯定是相对慢的。不过这里应该不是这个问题,因为background-index结束了,设静态index使用似乎也没提升(不知道我是不是没搞对)。

我暂时不知道需要提供哪些供debug的信息。首先,看看大家有没遇到过或复现这个问题?(是不是我自己的问题,比如配置,比如macos)

#include <iostream>
#include "Eigen/Core"

int main(int argc, char *argv[])
{
	Eigen::MatrixXd C;
    C.setRandom(4, 4);
	Eigen::Mat

    return 0;
}

为方便简单测试,cmake文件如下,修改下自己eigen3的位置:

cmake_minimum_required(VERSION 3.5.0)

# cxx version
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED TRUE)

# compiler
set(CMAKE_C_COMPILER "/usr/bin/clang")
set(CMAKE_CXX_COMPILER "/usr/bin/clang++")

# clangd support
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

# project
project(test_eigen VERSION 0.1.0 LANGUAGES C CXX)

include_directories(/usr/local/include/eigen3)
include_directories(${PROJECT_SOURCE_DIR}/include)

add_executable(a.out main.cpp)

PS: 这个问题其实没什么要紧的,我基本现在只用python和matlab了,很少写c++,eigen用的应该也小众,它header-only线代库蛮有特色,只有对矩阵计算性能要求高的任务才用它吧。

是不是打开了 lsp-bridge-enable-log 选项导致的?