我看了vscode-java的实现, -data
目录他是指定的vscoe workspace的目录。例如: /home/archer/.config/Code - OSS/User/workspaceStorage/${workpsaceid}/jdt_ws
我用他们提供的 jdtls wrapper 跑不起来, 目前是这样配置的:
{
"name": "jdtls",
"languageId": "java",
"command": ["java",
"-Declipse.application=org.eclipse.jdt.ls.core.id1",
"-Dosgi.bundles.defaultStartLevel=4",
"-Dlog.level=ALL",
"-javaagent:/Users/pi/.m2/repository/org/projectlombok/lombok/1.18.16/lombok-1.18.16.jar",
"-noverify",
"-Xmx1G",
"-jar",
"/Users/pi/.emacs.d/.cache/lsp/eclipse.jdt.ls/plugins/org.eclipse.equinox.launcher_1.6.400.v20210924-0641.jar",
"-configuration",
"/Users/pi/.emacs.d/.cache/lsp/eclipse.jdt.ls/config_mac",
"-data",
"/Users/pi/.emacs.d/workspace/"
],
"libraryDirectories": ["~/java-workspace"]
}
jdtls wrapper 是可以跑起来的.
-
首先删除(如果有的话)因为jdtls wrapper没指定 -data参数在项目下生成的workspace目录,猜测是因为生成workspace里面的java文件找不到定义才报错的。
-
使用jdtls wrapper 也需要指定 -data参数才行。
问题在于默认的jdtls配置无法根据项目来指定-data
我们直接按项目名创建子目录如何:
- doc_file = os.path.join(self.file_action.lsp_server.library_directories[0], doc_name)
+ project_name = self.file_action.project_path[self.file_action.project_path.rindex('/') + 1:]
+ doc_file = os.path.join(self.file_action.lsp_server.library_directories[0], project_name, doc_name)
测试了下 Python 3.8 及以下,比如访问 dict[0]
就会报这个错,Python 3.9 就不会。
应该是更新了 Union[dict, list[dict]] 这个类型标注导致的,我在 Python 3.7 下测试一下补个 fix
我的3.7的,应该就是这个问题
python版本3.7的,版本低就会出错
pass~~~
增加了中文文档,哪位大佬英文好的帮我改改英文README的内容。
感觉是可以的,这样不同项目生成的文件就分开了。
可以考虑在 Wiki 添加 NixOS 页面,介绍一下安装 Python 依赖的简单指导。
如果使用 home-manager
home.packages = with pkgs; [
(python3.withPackages (p: with p; [ epc ]))
];
如果使用 configuration.nix
environment.systemPackages = with pkgs; [
(python3.withPackages (p: with p; [ epc ]))
];
EAF 这一块的 Python 依赖有点多,NixOS 下的配置我还没整理出来。
EAF 可以看看这个文件 emacs-application-framework/dependencies.json at master · emacs-eaf/emacs-application-framework · GitHub
你来加吧, 我才把 lsp-bridge 的编辑权限设置为任何人都可以编辑了。