AI prompts
base on Kotlin Language Server and plugin for Visual Studio Code Language Server for Kotlin
========
[](https://kotlinlang.org/docs/components-stability.html)
[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
[](https://github.com/Kotlin/kotlin-lsp/releases/latest)
Pre-alpha official Kotlin support for Visual Studio Code and an implementation of [Language Server Protocol](https://github.com/Microsoft/language-server-protocol)
for the Kotlin language.
The server is based on [IntelliJ IDEA](https://github.com/JetBrains/intellij-community) and the [IntelliJ IDEA Kotlin Plugin](https://github.com/JetBrains/intellij-community/tree/master/plugins/kotlin)
implementation.
### VS Code Quick Start
1. Download the latest build of VSC extension or Standalone version from the [Releases Page](https://github.com/Kotlin/kotlin-lsp/releases)
2. Install it as a VSC Extension via `Extensions | More Action | Install from VSIX`
* Alternatively, it is possible to drag-and-drop VSIX extension directly into `Extensions` tool window
3. Ensure that your Java version is 17 or above
4. Open a folder with JVM-only Kotlin Gradle project and the project will be immediately recognized and LSP activated

### Install kotlin-lsp CLI
For brew users: `brew install JetBrains/utils/kotlin-lsp`
Manual installation:
1. Download the standalone zip from the [Releases Page](https://github.com/Kotlin/kotlin-lsp/releases)
2. Unpack zip
3. `chmod +x $KOTLIN_LSP_DIR/kotlin-lsp.sh`
4. Create a symlink inside your PATH `ln -s $KOTLIN_LSP_DIR/kotlin-lsp.sh $HOME/.local/bin/kotlin-lsp`
### Supported features and Roadmap
The best way to track current capabilities and what is going to be supported in the next builds is this table:
>Important note: currently, only JVM-only Kotlin Gradle projects are supported out-of-the box.
* [ ] Project import
* [x] Gradle JVM project import
* [ ] Gradle KMP project import
* [x] JSON-based build system agnostic import
* [ ] Quickstart for JSON
* [ ] Maven/Amper import
* [ ] Dumb mode for no build system at all
* [x] Highlighting
* [x] Semantic highlighting
* [x] Navigation
* [x] Navigation to Kotlin (source, binary)
* [x] Navigation to Kotlin builtins
* [x] Navigation to Java (source, binary)
* [x] Code actions
* [x] Quickfixes (i.e. `replace with`)
* [x] Kotlin inspections
* [x] Organize imports
* [x] Go to reference
* [ ] Refactorings
* [x] Rename
* [ ] Move
* [ ] Change signature
* [x] On-the-fly Kotlin diagnostics
* [x] Completion
* [x] Analysis-API based completion
* [x] IJ-based completion
* [x] Enable IJ-based completion
* [ ] KDoc support
* [x] In-project documentation hovers
* [ ] Dependencies/Java documentation hovers from `source.jar`
* [ ] Code formatting
* [ ] Fully-featured Windows support
* [x] Reactive updates from the filesystem
* [x] Document symbols (Outline)
### Project Status
**The project is in an experimental, pre-alpha, exploratory phase** with the intention to be productionized.
We [move fast, break things](https://xkcd.com/1428/), and explore various aspects of the seamless developer experience
including Java interoperability, limits of IntelliJ capabilities as a standalone server, native binaries of the LSP, and
debug capabilities.
The LSP supports most of the essential parts, but its final shape is not near to be defined and
even the most basic and core parts are being changed on a regular basis.
So we have the corresponding stability guarantees -- **none**. It is okay to use it in your toy
projects, to experiment with it and to provide your feedback, but it is not recommended
to depend on its stability in your day-to-day work.
### Supported platforms
In the current state, the golden path has been tested for Visual Studio Code with macOS and Linux platforms.
You can use Kotlin LSP with other LSP-compliant editors, but configuration must be done manually.
Please note that Kotlin LSP uses pull-based diagnostics, so the editor must support that.
You can find a standalone LSP launch script in [kotlin-lsp.sh](scripts/kotlin-lsp.sh) along
with _very experimental_ (aka "works on someone's machine") instructions that setup LSP for other editors in [scripts](scripts) folder.
See `./kotlin-lsp.sh --help` for available options.
### Source code
Currently, the LSP implementation is partially closed-source, primarily for the sake of development speed convenience --
it heavily depends on parts of IntelliJ, Fleet, and our distributed Bazel build that allows us to
iterate quickly and experiment much faster, cutting corners and re-using internal infrastructure where it helps.
After the initial stabilization phase and defining the final set of capabilities, we will de-couple the LSP implementation from the internal repository
and build pipelines and open source it completely (with an explicit dependency on IntelliJ), this is a temporary constraint.
VSC extension is mirrored into [kotlin-vscode](kotlin-vscode) as it does not depend on anything internal.
### Feedback and issues
The best way to provide your feedback or report an issue is to file a bug [in GitHub issues](https://github.com/Kotlin/kotlin-lsp/issues/new).
As a temporary limitation, direct contributions are not supported as this repository is a read-only mirror,
but it is possible to open a PR into the documentation, and it will be integrated manually by maintainers.
", Assign "at most 3 tags" to the expected json: {"id":"14425","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"