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