py文件目录需要有 setup.py
才能用 lsp-mode。
如果我只想编辑单文件的话会提示 LSP :: test.py not in project
。
我应该怎么做?
py文件目录需要有 setup.py
才能用 lsp-mode。
如果我只想编辑单文件的话会提示 LSP :: test.py not in project
。
我应该怎么做?
随便起个什么项目就行了。比如可以git init
如果用了projectils,最环保的方式是touch .projectile
感谢,这样确实有用。只是python作为脚本语言为什么要采取这种方式呢。
只要有文件夹,就可以设置项目根目录。
不必为 foo.py 创建 foo 目录。
但 foo.py 总归是放在某个目录下,比如 “/path/to/misc”。这时就可以手动设置 misc 为项目根目录。
出现这个问题,是因为你之前某一次操作,手太快,把这个目录放到 lsp 黑名单了。
我在这里有提到:如何让 lsp-mode 根据文件后缀或其它策略选取服务 - #7,来自 twlz0ne
楼下 yyoncho 也说了打算改进,不知现在是否已经实现。
This is implemented, you could have activation function and start the server based on whatever criteria you want.
@zhscn I guess you have set lsp-auto-guess-root to t? If you set it to nil which is the recommended setting you will be asked to select a root if lsp-mode cannot detect the current root.
It works after setting lsp-auto-guess-root to nil. Thanks
是 lsp-auto-guess-root的原因,已经解决了
你确定是lsp-auto-guess-root设置为nil吗?
是的,之前设置为t,打开文件时不会有关于project的提示。
I set lsp-auto-guess-root to nil, however, I still get LSP :: No LSP server for python-mode.
好像是这样,有什么办法解决么 PS 重装 lsp 解决了
Make sure that lsp-mode is able to find pyls - (executable-find "pyls")
should return the path to “pyls”. You may alter emacs path by (add-to-list 'exec-path "/some-path")
or you could change lsp-clients-python-command
.
session 信息保存在 ~/.emacs.d/.lsp-session-v1
文件里,lsp 启动之后就读到内存了,所以你修改必须连内存里的 session 也一起修改,才有效。然后再回写文件保证下一次有效。
或者删掉 .lsp-session-v1
然后重启 Emacs。