# 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"