An open API service indexing awesome lists of open source software.

https://github.com/kuafuwang/LspCpp

A Language Server Protocol implementation in C++
https://github.com/kuafuwang/LspCpp

language-server-protocol lsp lsp-client lsp-cpp lsp-server

Last synced: over 1 year ago
JSON representation

A Language Server Protocol implementation in C++

Awesome Lists containing this project

README

          

# LspCpp

## Dependencies
`LspCpp` depends on boost, rapidjson, utfcpp, uri.

## Build

### Linux / Mac
1. On linux, install boost
```shell
$ sudo apt-get install libboost-dev
```
On Mac, install boost on Mac
```shell
$ brew install boost
```

2. Building with ``CMake``
-----------------------
$ mkdir _build
$ cd _build
$ cmake -DUri_BUILD_TESTS=OFF ..
$ make -j4

### Windows

1. Open cmd or powershell and generate visual studio project with ``CMake``.
-----------------------
mkdir _build
cd _build
cmake -DUri_BUILD_TESTS=OFF -DUri_USE_STATIC_CRT=OFF ..

2. "cmake -help" is useful if you are not familiar with cmake.

3. Build it with Visual Studio.

## Reference
Some code from :[cquery][1]

## Projects using LspCpp:
* [JCIDE](https://www.javacardos.com/javacardforum/viewtopic.php?f=5&t=3569&sid=e01238adf55cd08696fbf495dfa6c8e5)
* [LPG-language-server](https://github.com/kuafuwang/LPG-language-server)
* [Asymptote](https://github.com/vectorgraphics)
* [chemical](https://github.com/chemicallang/chemical)
## License
MIT

## Example:
[It's here](https://github.com/kuafuwang/LspCpp/tree/master/examples)

## Development guide

For any merges into the master branch, ensure the C++ code complies with the clang-format standard.
As of currently, the latest clang-format version offered in ubuntu 24.04 (18) is used, but this
may change in the future as newer versions of clang-format is available for Ubuntu.

To check the current version of clang-format used, see the check-format-cpp workflow. It prints out
the version used. Ensure the C++ code is compliant with that version of clang-format.

`vcpkg.json` is optionally provided for convenience. It is not required for compiling LspCpp.

[1]: https://github.com/cquery-project/cquery "cquery:"
[2]: https://www.javacardos.com/tools "JcKit:"
[3]: https://docs.microsoft.com/en-us/nuget/consume-packages/package-restore "Package Restore"