Рубрики
Без рубрики

Java LSP в Sublime Text

Мы никогда не заканчиваем с одним программным обеспечением. Sublime Text 4 был выпущен несколько дней назад, я пытаюсь это выяснить… С тегами java, sublime text, lsp, editor.

Мы никогда не заканчиваем с одним программным обеспечением. Sublime Text 4 был выпущен несколько дней назад, я пытаюсь найти руководство по настройке Java LSP. Цель просто для лучшего чтения и большей свободы в проектах Java (например, я могу использовать Go to definition).

Предпосылки

Настройки LSP

Найдите настройки LSP, затем примените приведенную ниже конфигурацию к этому файлу. Эта конфигурация задана для пользователя Mac.

////для macOS

{
    "clients":
    {
        "jdtls": {
            "command": [
                "java",
                "--add-modules=ALL-SYSTEM",
                "--add-opens",
                "java.base/java.util=ALL-UNNAMED",
                "--add-opens",
                "java.base/java.lang=ALL-UNNAMED",
                "-Declipse.application=org.eclipse.jdt.ls.core.id1",
                "-Dosgi.bundles.defaultStartLevel=4",
                "-Declipse.product=org.eclipse.jdt.ls.core.product",
                "-Dfile.encoding=UTF-8",
                "-DwatchParentProcess=true",  // false on windows, true other OSs
                "-Xmx1G",
                "-XX:+UseG1GC",
                "-XX:+UseStringDeduplication",
                "-jar",
                "/jdt-language-server-1.1.2-202105191944/plugins/org.eclipse.equinox.launcher_1.6.100.v20201223-0822.jar", // 1. replace the PATH/TO with your own 2. replace * with the file version
                "-configuration",
                "/jdt-language-server-1.1.2-202105191944/config_mac", // 1. replace the PATH/TO with your own 2. choose the config folder based on the OS
                "-data",
                "/T//jdt_ws" // replace  with the temp folder in your system. macOS: echo $TMPDIR
            ],
            "enabled": true,
            "languageId": "java",
            "scopes": ["source.java"],
            "syntaxes": ["Packages/Java/Java.sublime-syntax"]
        }
    }
}

//для окон

{
    "clients":
    {
        "jdtls": {
            "command": [
                "java",
                "--add-modules=ALL-SYSTEM",
                "--add-opens",
                "java.base/java.util=ALL-UNNAMED",
                "--add-opens",
                "java.base/java.lang=ALL-UNNAMED",
                "-Declipse.application=org.eclipse.jdt.ls.core.id1",
                "-Dosgi.bundles.defaultStartLevel=4",
                "-Declipse.product=org.eclipse.jdt.ls.core.product",
                "-Dfile.encoding=UTF-8",
                "-DwatchParentProcess=false",  // false on windows, true other OSs
                "-Xmx1G",
                "-XX:+UseG1GC",
                "-XX:+UseStringDeduplication",
                "-jar",
                "\\jdt-language-server-1.1.2-202105191944\\plugins\\org.eclipse.equinox.launcher_1.6.100.v20201223-0822.jar", // 1. replace the PATH/TO with your own 2. replace * with the file version
                "-configuration",
                "\\.lsp-tools\\jdt-language-server-1.1.2-202105191944\\config_win", // 1. replace the PATH/TO with your own 2. choose the config folder based on the OS
                "-data",
                "\\.lsp-tools\\jdt_ws" // replace  with the temp folder in your system. macOS: echo $TMPDIR
            ],
            "enabled": true,
            "languageId": "java",
            "scopes": ["source.java"],
            "syntaxes": ["Packages/Java/Java.sublime-syntax"]
        }
    }
}

Привязка ключа LSP

Для простой цели я просто хочу использовать Переход к определению. Откройте привязку ключа LSP, затем вставьте его

[
    // Go To Definition
    {
        "command": "lsp_symbol_definition",
        "args": {
            "side_by_side": false
        },
        "keys": [
            "ctrl+d"
        ],
        "context": [
            {
                "key": "lsp.session_with_capability",
                "operator": "equal",
                "operand": "definitionProvider"
            },
            {
                "key": "auto_complete_visible",
                "operator": "equal",
                "operand": false
            }
        ]
    },
]

Благодаря

Чтобы завершить эту настройку, я прочитал несколько полезных статей, которые помогут мне понять, как правильно это сделать.

Диагностика

Нажав Cmd + Shift + P и выполнив поиск “LSP”, вы можете увидеть своего рода панель журнала, которая поможет вам отладить, если что-то пойдет не так.

Дело сделано. Счастливого кодирования!

Оригинал: “https://dev.to/vuong/java-lsp-on-sublime-text-3nif”