{"id":26842116,"url":"https://github.com/redhat-developer/lsp4ij","last_synced_at":"2025-04-06T19:11:05.911Z","repository":{"id":210094430,"uuid":"725527386","full_name":"redhat-developer/lsp4ij","owner":"redhat-developer","description":"LSP \u0026 DAP Client for IntelliJ","archived":false,"fork":false,"pushed_at":"2025-03-28T18:04:32.000Z","size":17883,"stargazers_count":168,"open_issues_count":123,"forks_count":43,"subscribers_count":21,"default_branch":"main","last_synced_at":"2025-03-30T14:35:43.429Z","etag":null,"topics":["dap","intellij-idea","lsp"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"epl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/redhat-developer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2023-11-30T10:30:56.000Z","updated_at":"2025-03-30T12:40:43.000Z","dependencies_parsed_at":"2024-04-17T10:58:03.725Z","dependency_job_id":null,"html_url":"https://github.com/redhat-developer/lsp4ij","commit_stats":null,"previous_names":["redhat-developer/lsp4ij"],"tags_count":11,"template":false,"template_full_name":"redhat-developer/new-project-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redhat-developer%2Flsp4ij","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redhat-developer%2Flsp4ij/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redhat-developer%2Flsp4ij/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redhat-developer%2Flsp4ij/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/redhat-developer","download_url":"https://codeload.github.com/redhat-developer/lsp4ij/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247535516,"owners_count":20954576,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dap","intellij-idea","lsp"],"created_at":"2025-03-30T18:17:04.891Z","updated_at":"2025-04-06T19:11:05.904Z","avatar_url":"https://github.com/redhat-developer.png","language":"Java","readme":"# LSP4IJ\n\n[plugin-repo]: https://plugins.jetbrains.com/plugin/23257-lsp4ij\n[plugin-version-svg]: https://img.shields.io/jetbrains/plugin/v/23257-lsp4ij.svg\n[plugin-downloads-svg]: https://img.shields.io/jetbrains/plugin/d/23257-lsp4ij.svg\n[plugin-rating-svg]: https://img.shields.io/jetbrains/plugin/r/rating/23257\n\n![Java CI with Gradle](https://github.com/redhat-developer/lsp4ij/workflows/Java%20CI%20with%20Gradle/badge.svg)\n![Validate against IJ versions](https://github.com/redhat-developer/lsp4ij/workflows/Validate%20against%20IJ%20versions/badge.svg)\n[![JetBrains plugins][plugin-version-svg]][plugin-repo]\n[![JetBrains Plugin Rating][plugin-rating-svg]][plugin-repo]\n[![JetBrains plugins][plugin-downloads-svg]][plugin-repo]\n\n## Description\n\u003c!-- Plugin description --\u003e\n\nLSP4IJ is a free and open-source \n\n * [Language Server protocol (LSP)](https://microsoft.github.io/language-server-protocol/) client compatible with all flavours of IntelliJ.\n * [Debug Adapter Protocol](https://microsoft.github.io/debug-adapter-protocol/) support with [Debug Adapter Protocol Run/Debug configuration](./docs/dap/UserGuide.md).\n\nIt allows you to integrate any `language server` that communicates with its client via `stdio`:\n\n* by `developing an IntelliJ plugin` with LSP `extension points`:\n  * [com.redhat.devtools.lsp4ij.server](./docs/DeveloperGuide.md#extension-point-declaration) extension point to define a language server.\n  * [com.redhat.devtools.lsp4ij.languageMapping](./docs/DeveloperGuide.md#declare-file-mappings) to associate an IntelliJ language with a language server definition.\n* by manually adding [language server definitions](./docs/UserDefinedLanguageServer.md), \nsupporting custom server settings. This approach doesn't require developing a specific IntelliJ plugin.\n\nLSP4IJ also provides:\n\n* an [LSP Consoles view](./docs/UserGuide.md#lsp-console) to tracks LSP requests, responses and notifications in a console:\n\n![LSP console](./docs/images/LSPConsole.png)\n\nIf you select the language server node, you can configure it the same way as in the [Language Servers preferences page](./docs/UserGuide.md#language-servers-preferences)\n\n![LSP language server detail](./docs/images/LSPLanguageServerDetail.png)\n\nand use the left toolbar to `Apply` or `Reset` the settings.\n\n* a [Language Servers preferences page](./docs/UserGuide.md#language-servers-preferences) to configure the LSP trace level, the debug port to use to debug language server:\n\n![Language Server preferences](./docs/images/LanguageServerPreferences.png)\n\nYou can find more documentation in:\n\n * [the developer guide](./docs/DeveloperGuide.md), providing step-by-step instructions on how to integrate a language server in LSP4J in an external IntelliJ plugin.\n * [the User-defined language server documentation](./docs/UserDefinedLanguageServer.md), explaining how to integrate a language server in LSP4J with few settings. \n * [the user guide](./docs/UserGuide.md), which explains how to use LSP console and Language Server preferences.\n * [the LSP Support overview](./docs/LSPSupport.md), describing which LSP features are implemented, and how.\n\n\u003c!-- Plugin description end --\u003e\n\n## Articles\n\n * [Meet LSP4IJ, a new LSP Client for JetBrains-based IDEs](https://idetools.dev/blog/lsp4ij-announcement/)\n * [Meet LSP4IJ, a new Debug Adapter Protocol for JetBrains-based IDEs](https://idetools.dev/blog/lsp4ij-dap-announcement/)\n\n## Who is using LSP4IJ?\n\nHere are some projects that use LSP4IJ:\n\n * [Quarkus Tools for IntelliJ](https://github.com/redhat-developer/intellij-quarkus)\n * [Inga for IntelliJ](https://github.com/seachicken/intellij-inga)\n * [IntelliJ SumnekoLua](https://github.com/CppCXY/Intellij-SumnekoLua)\n * [Haskell LSP for IntelliJ](https://github.com/rockofox/intellij-haskell-lsp)\n * [Zowe™ COBOL Language Support](https://github.com/zowe/zowe-cobol-language-support-intellij)\n * [ZigBrains](https://github.com/FalsePattern/ZigBrains)\n * [Pyright for PyCharm](https://github.com/InSyncWithFoo/pyright-for-pycharm)\n * [Intellij EmmyLua2](https://github.com/EmmyLua/Intellij-EmmyLua2)\n * [Lean4ij](https://github.com/onriv/lean4ij)\n * [Intellij KCL](https://github.com/kcl-lang/intellij-kcl)\n * [Ruff for PyCharm](https://github.com/koxudaxi/ruff-pycharm-plugin)\n * [Intellij Gleam](https://github.com/themartdev/intellij-gleam)\n * [Liberty Tools for IntelliJ](https://github.com/OpenLiberty/liberty-tools-intellij)\n * [Vespa Schema Language Support](https://github.com/vespa-engine/vespa/tree/master/integration/schema-language-server/clients/intellij)\n * [Jimmer DTO LSP](https://github.com/Enaium/jimmer-dto-lsp)\n * [Qt Tools for Android Studio](https://code.qt.io/cgit/qt-labs/android-studio-tools.git/)\n * [Clojure LSP Intellij](https://github.com/clojure-lsp/clojure-lsp-intellij)\n * [GroovyScript for IntelliJ](https://github.com/IntegerLimit/GroovyScriptPlugin)\n * [Redscript Intellij](https://github.com/pawrequest/redscript-intellij)\n * [AngelScript Language Server for IntelliJ](https://github.com/sashi0034/angel-intellij)\n * [RobotCode - Robot Framework Support](https://robotcode.io)\n * [IntelliJ-gno](https://github.com/gnoverse/intellij-gno)\n * [SAP CDS Language Support for IntelliJ](https://github.com/cap-js/cds-intellij)\n\n## Requirements\n\n* Intellij IDEA 2023.3 or more recent (we **try** to support the last 4 major IDEA releases)\n* Java JDK (or JRE) 17 or more recent\n\n## Contributing\n\nThis is an open source project open to anyone. Contributions are extremely welcome!\n\n \n### Building\n\nProject is managed by Gradle. So building is quite easy.\n\n#### Building the plugin distribution file\n\nRun the following command:\n\n```sh\n./gradlew buildPlugin\n```\nThe plugin distribution file is located in ```build/distributions```.\n\n#### Testing\n\nYou can also easily test the plugin. Just run the following command:\n\n```sh\n./gradlew runIde\n```\n\n#### Testing the CI builds\n\nYou can also download and install CI builds of the latest commits or a specific pull request:\n\n- open the [`Build plugin zip` workflow](https://github.com/redhat-developer/lsp4ij/actions/workflows/buildZip.yml)\n- click on the build you are interested in\n- scroll down and download the `LSP4IJ \u003cversion\u003e.zip` file\n- install `LSP4IJ \u003cversion\u003e.zip` into IntelliJ IDEA by following these [instructions](https://www.jetbrains.com/help/idea/managing-plugins.html#install_plugin_from_disk).\n\n#### Testing nightly builds\n\nYou can easily install nightly builds from the nightly channel:\n\n- in IntelliJ, open `Setting \u003e Plugins \u003e [Gear icon] \u003e Manage Plugin Repositories...`\n- Add `https://plugins.jetbrains.com/plugins/nightly/23257` and press `OK`\n\u003cimg alt=\"Nightly Channel Repository\" src=\"docs/images/nightly-channel-repo.png\" width=\"500px\" /\u003e\n- install the latest `LSP4IJ` version\n\nNightly builds are published once a day.\n\nData and Telemetry\n==================\nIf the [Red Hat Telemetry](https://github.com/redhat-developer/intellij-redhat-telemetry) plugin is installed, the LSP4IJ plugin will collect anonymous [usage data](USAGE_DATA.md) and send it to Red Hat servers to help improve our products and services. Read our [privacy statement](https://developers.redhat.com/article/tool-data-collection) to learn more. This extension respects the Red Hat Telemetry setting which you can learn more about at [https://github.com/redhat-developer/intellij-redhat-telemetry#telemetry-reporting](https://github.com/redhat-developer/intellij-redhat-telemetry#telemetry-reporting)\n\n## Feedback\n\nFile a bug in [GitHub Issues](https://github.com/redhat-developer/lsp4ij/issues).\n\nYou can have 2 kinds of errors:\n\n * an error from LSP4IJ, in this case, the error will be reported in the standard IntelliJ log.\n * an error coming from the language server.\n\nFor the second case, you can customize the error reporting with the `Debug / Error reporting` combo box \nby opening the `Languages \u0026 Frameworks / Language Servers` preferences:\n\n![Error reporting combo box](./docs/images/troubleshooting/LanguageServerErrorReportingSetting.png)\n\nYou can select:\n * `None` : in this case the language server error will be ignored.\n * `In notification` (default value) : in this case the language server error appear as a `notification`:\n![Error in notification](./docs/images/troubleshooting/LanguageServerErrorInNotification.png)\n The error notification shows 3 possible actions:\n   * `Disable error reporting` : sets the error reporting to `None`.\n   * `Report error in Log` : sets the error reporting to `In log`. \n   * `Open LSP4IJ documentation` : opens this documentation. \n * `In log` : in this case the language server error will be logged in the standard `IntelliJ log`:\n![Error in log](./docs/images/troubleshooting/LanguageServerErrorInLog.png)\n\nYou can see this error's details in the [LSP Consoles view](./docs/UserGuide.md#lsp-console) (by setting the `Debug / Trace` combo box in `verbose`):\n\n![Detail error in LSP console](./docs/images/troubleshooting/LanguageServerInLSPConsole.png)\n\n## License\n\nEclipse Public License 2.0.\nSee [LICENSE](LICENSE) file.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fredhat-developer%2Flsp4ij","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fredhat-developer%2Flsp4ij","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fredhat-developer%2Flsp4ij/lists"}