Comments (18)
别用中文路径看看
from lsp-bridge.
再报一个没有在git目录的test.py,路径C:\Users\Administrator\Desktop\test.py
,lsp buffer:
Exception in thread Thread-2:
Traceback (most recent call last):
File "c:\Python38\lib\threading.py", line 932, in _bootstrap_inner
self.run()
File "c:\Python38\lib\threading.py", line 870, in run
self._target(*self._args, **self._kwargs)
File "c:/green/emacs/.emacs.d/packages/corfu/corfu-main/lsp-bridge-master/lsp-bridge.py", line 90, in postgui_dispatcher
self._open_file(message["content"])
File "c:/green/emacs/.emacs.d/packages/corfu/corfu-main/lsp-bridge-master/lsp-bridge.py", line 131, in _open_file
server = LspServer(self.message_queue, file_action, self.enable_lsp_server_log)
File "c:\green\emacs\.emacs.d\packages\corfu\corfu-main\lsp-bridge-master\core\lspserver.py", line 231, in __init__
self.p = subprocess.Popen(self.get_server_command(),
File "c:\Python38\lib\subprocess.py", line 858, in __init__
self._execute_child(args, executable, preexec_fn, close_fds,
File "c:\Python38\lib\subprocess.py", line 1311, in _execute_child
hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
FileNotFoundError: [WinError 2] 系统找不到指定的文件。
Cache action change_cursor, wait for file c:/Users/Administrator/Desktop/test.py to open it before executing.
这个路径不含中文,pyright也正常安装了,eglot都是正常执行的。
from lsp-bridge.
打印了get_server_command()是['pyright-langserver.cmd', '--stdio']
,是在pyright.json里配置的
"nt": ["pyright-langserver.cmd", "--stdio"],
而我的C:\Python38\Scripts是
c:/Python38/Scripts:
drwxr-xr-x 1 Administrator 197121 0 2022/05/08 08:48 .
drwxr-xr-x 1 Administrator 197121 0 2022/03/27 19:07 ..
-rwxr-xr-x 1 Administrator 197121 104K 2022/05/08 08:48 nodeenv.exe
-rwxr-xr-x 1 Administrator 197121 104K 2022/03/26 17:47 pip.exe
-rwxr-xr-x 1 Administrator 197121 104K 2022/03/26 17:47 pip3.exe
-rwxr-xr-x 1 Administrator 197121 104K 2022/03/26 17:47 pip3.8.exe
-rwxr-xr-x 1 Administrator 197121 104K 2022/05/08 08:48 pyright.exe
-rwxr-xr-x 1 Administrator 197121 104K 2022/05/08 08:48 pyright-langserver.exe
-rwxr-xr-x 1 Administrator 197121 104K 2022/05/08 08:48 pyright-python.exe
-rwxr-xr-x 1 Administrator 197121 104K 2022/05/08 08:48 pyright-python-langserver.exe
-rwxr-xr-x 1 Administrator 197121 104K 2022/03/26 17:47 wheel.exe
pyright-langserver.cmd用everything搜索了下也有,但是不在bin路径里,手动cmd里执行pyright-langserver.cmd也报错了
from lsp-bridge.
pyright.json里改为:
"nt": ["pyright-langserver", "--stdio"],
正常了,嘿嘿,就剩下个中文路径问题了,可以考虑emacs传project root给python不?emacs支持不止git一种哟
from lsp-bridge.
又发现个问题,我编辑那个pyright.json貌似启动lsp bridge了,导致这边test.py没有补全了,好奇怪,lsp buffer提示
Cache action change_cursor, wait for file c:/green/emacs/.emacs.d/packages/corfu/corfu-main/lsp-bridge-master/langserver/pyright.json to open it before executing.
['typescript-language-server', '--stdio'] --------这是我加的get_server_command()打印,所以是json文件启动ts后端了?
from lsp-bridge.
lsp bridge确实很快,太爽了,太感谢懒猫了,希望越来越好,加油!
from lsp-bridge.
运行git时的编码问题,git的stdin stdout都期待是utf-8
from lsp-bridge.
pyright.json里改为:
"nt": ["pyright-langserver", "--stdio"],
正常了,嘿嘿,就剩下个中文路径问题了,可以考虑emacs传project root给python不?emacs支持不止git一种哟
Emacs 的 project-root 在嵌套 git 项目中不会正确判断,你只要把 git 创建好, lsp-bridge 就可以正常工作。
from lsp-bridge.
pyright.json里改为:
"nt": ["pyright-langserver", "--stdio"],
正常了,嘿嘿,就剩下个中文路径问题了,可以考虑emacs传project root给python不?emacs支持不止git一种哟
Windows 不是 pyright-langser.cmd 吗? 如果是这样 https://github.com/manateelazycat/lsp-bridge/blob/master/langserver/pyright_nt.json 文件没有存在的必要了。
from lsp-bridge.
安装途径不一样,他这个是exe的
from lsp-bridge.
感觉是没必要,就算只有pyright-langserver.cmd
没有pyright-langserver.exe
,pyright-langserver
照样能调用pyright-langserver.cmd
,我看eglot代码也只有个pyright-langserver
。我是通过pip install pyright
安装的,貌似还要装个node。
from lsp-bridge.
另外这个gbk问题,用的今天最新代码在win10 64位上测试(python Python 3.10.4 64位)又可以正常在C:\Users\lynnux\Desktop\新建文a 件夹
这样的git仓库里补全py文件。难道跟win10,或者python版本有关系?(win7的python是3.8某个版本主要太新了的不支持win7) 貌似git输出是utf-8,可以考虑在get_command_result里decode("utf-8")之类,今天晚上回去在win7上测试下。
from lsp-bridge.
感觉是没必要,就算只有
pyright-langserver.cmd
没有pyright-langserver.exe
,pyright-langserver
照样能调用pyright-langserver.cmd
,我看eglot代码也只有个pyright-langserver
。我是通过pip install pyright
安装的,貌似还要装个node。
python的Popen为了所谓的安全问题,不会像Emacs的进程创建函数那样去把pyright-langserver
“解析” 成pyright-langserver
+PATHEXT(.cmd/.bat/.ps1)
from lsp-bridge.
测试subprocess.Popen加个 encoding="utf-8"
就不报错了:
def get_command_result(command_string, cwd):
import subprocess
process = subprocess.Popen(command_string, cwd=cwd, shell=True, text=True,
stdout=subprocess.PIPE, stderr=subprocess.PIPE,
encoding="utf-8")
ret = process.wait()
return "".join((process.stdout if ret == 0 else process.stderr).readlines()).strip()
不过含中文路径的补全有点问题,见gif(由于我设置了(setq-local corfu-auto-prefix 1),有些是手动触发completion-at-point):
而且lsp bridge buffer没有任何显示。
from lsp-bridge.
对于非中文路径,函数名含中文好像也会有问题,测试代码:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import sys
def b中文():
print("测试中文")
def ab中哈():
pass
def main():
# 这里补全试试
os.
if __name__ == "__main__":
try:
main()
except:
import traceback
traceback.print_exc()
input()
from lsp-bridge.
测试subprocess.Popen加个
encoding="utf-8"
就不报错了:def get_command_result(command_string, cwd): import subprocess process = subprocess.Popen(command_string, cwd=cwd, shell=True, text=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, encoding="utf-8") ret = process.wait() return "".join((process.stdout if ret == 0 else process.stderr).readlines()).strip()
不过含中文路径的补全有点问题,见gif(由于我设置了(setq-local corfu-auto-prefix 1),有些是手动触发completion-at-point): 而且lsp bridge buffer没有任何显示。
这个最新的commint已经修正了,感谢反馈。
from lsp-bridge.
对于非中文路径,函数名含中文好像也会有问题,测试代码:
#!/usr/bin/env python # -*- coding: utf-8 -*- import os import sys def b中文(): print("测试中文") def ab中哈(): pass def main(): # 这里补全试试 os. if __name__ == "__main__": try: main() except: import traceback traceback.print_exc() input()
这个你继续折腾吧,欢迎发送PR
from lsp-bridge.
OK,中文路径问题解决了。上面今天没重现。先关闭了。
还发现不知道是不是win7 python3.8环境问题,有时候pyright的进程半天都启动不起来,只有个lsp bridge的python进程,再观察下。。
from lsp-bridge.
Related Issues (20)
- Is it possible to use ACM with Orderless component separator like in Corfu? HOT 1
- lsp-bridge-workspace-list-symbols 查询结果集,如果是以 jdt:// 开始,无法正常跳转 HOT 7
- 补全消失 HOT 23
- (redisplay t) is consuming lots of cpu HOT 1
- Question: lsp-bridge-workspace-list-symbols can find the symbol, but lsp-bridge-find-def does not HOT 4
- 在latex启动lsp-bridge-mode后只能补全yasnippet中的模板,不能连接latex lsp服务器 HOT 2
- lsp-bridge-find-def not working with remote HOT 5
- Inlay hints HOT 8
- outdated diagnostic HOT 4
- 能加入mojo支持吗? HOT 8
- enabling lsp-bridge breaks syntax highlighting HOT 3
- I found how to fix Tailwindcss HOT 30
- Pop up buffer stuck on screen HOT 3
- No signature help when using lsp-bridge within org babel source block HOT 3
- Using eldoc & xref for finding references & showing function signature HOT 7
- LSP signature help does not display for most symbols, only when point is inside function parameters [Typescript] HOT 1
- AttributeError: 'NoneType' object has no attribute 'strip' HOT 3
- 安装说明中是否可以增加spacemacs? HOT 2
- acm popup menu not align well with cursor on KDE plasma 6 wayland HOT 5
- 提供选中区域格式化的功能 HOT 9
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from lsp-bridge.