deploy: 84ea676b89fad4bdc15e619eb2e3e926b0738119

This commit is contained in:
16bit-ykiko
2025-08-12 12:48:45 +00:00
parent 84bbd5f8f2
commit b5b4401341
74 changed files with 156 additions and 319 deletions

View File

@@ -16,7 +16,7 @@
</head>
<body>
<div id="app"></div>
<script>window.__VP_HASH_MAP__=JSON.parse("{\"build.md\":\"Co74jVci\",\"configuration.md\":\"CpRedDOQ\",\"contribution.md\":\"Zb0EHW2I\",\"design_architecture.md\":\"C7gHe7F3\",\"design_clangd.md\":\"Bf0uxymm\",\"design_dependent-name.md\":\"CV61gbuX\",\"design_design.md\":\"C2BgqDzh\",\"design_index.md\":\"DRSC8Xmj\",\"design_markdown-examples.md\":\"CpB9tZ0M\",\"design_protocol.md\":\"DF8r9ZnS\",\"feature_document-symbol.md\":\"DsqxMq4k\",\"feature_folding-range.md\":\"2DTooAm1\",\"feature_inlay-hint.md\":\"D7ZN-35G\",\"feature_semantic-tokens.md\":\"B5B0Hwzv\",\"guide_quick-start.md\":\"CwDrTxXo\",\"index.md\":\"9zIdimQ1\",\"zh_design_compilation-task.md\":\"CRasWF8z\",\"zh_design_header-context.md\":\"JzQT9F1p\",\"zh_design_template-resolver.md\":\"fGt2KNxS\",\"zh_development_build.md\":\"DQ0u_rdw\",\"zh_development_contribution.md\":\"VhnPZehF\",\"zh_guide_quick-start.md\":\"DMOksTiB\",\"zh_guide_roadmap.md\":\"BIO2ru79\",\"zh_guide_what-is-clice.md\":\"C7OJIBOU\",\"zh_index.md\":\"CVx52Udt\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"clice\",\"description\":\"a powerful and modern C++ language server\",\"base\":\"/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"nav\":[{\"text\":\"Home\",\"link\":\"/\"},{\"text\":\"Examples\",\"link\":\"/markdown-examples\"}],\"sidebar\":[{\"text\":\"Guide\",\"items\":[{\"text\":\"Guide\",\"link\":\"/guide\"},{\"text\":\"Runtime API Examples\",\"link\":\"/api-examples\"}]}],\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/clice-project/clice\"}],\"outline\":\"deep\"},\"locales\":{\"root\":{\"label\":\"English\"},\"zh\":{\"label\":\"简体中文\"}},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
<script>window.__VP_HASH_MAP__=JSON.parse("{\"design_architecture.md\":\"C7gHe7F3\",\"design_clangd.md\":\"Bf0uxymm\",\"design_dependent-name.md\":\"CV61gbuX\",\"design_design.md\":\"C2BgqDzh\",\"design_index.md\":\"DRSC8Xmj\",\"design_markdown-examples.md\":\"CpB9tZ0M\",\"design_protocol.md\":\"DF8r9ZnS\",\"index.md\":\"9zIdimQ1\",\"zh_design_architecture.md\":\"CWdgG2wH\",\"zh_design_compilation.md\":\"DfE77o6C\",\"zh_design_header-context.md\":\"BEaf4C-z\",\"zh_design_index.md\":\"DHNbht8F\",\"zh_design_template-resolver.md\":\"DNGBj6oC\",\"zh_dev_build.md\":\"D0ygseBD\",\"zh_dev_contribution.md\":\"CtDPz8pA\",\"zh_guide_configuration.md\":\"C92jpGuF\",\"zh_guide_quick-start.md\":\"CcQPc5x5\",\"zh_guide_roadmap.md\":\"BIO2ru79\",\"zh_guide_what-is-clice.md\":\"C7OJIBOU\",\"zh_index.md\":\"CVx52Udt\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"clice\",\"description\":\"a powerful and modern C++ language server\",\"base\":\"/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"nav\":[{\"text\":\"Home\",\"link\":\"/\"},{\"text\":\"Examples\",\"link\":\"/markdown-examples\"}],\"sidebar\":[{\"text\":\"Guide\",\"items\":[{\"text\":\"Guide\",\"link\":\"/guide\"},{\"text\":\"Runtime API Examples\",\"link\":\"/api-examples\"}]}],\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/clice-project/clice\"}],\"outline\":\"deep\"},\"locales\":{\"root\":{\"label\":\"English\"},\"zh\":{\"label\":\"简体中文\"}},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
</body>
</html>

View File

@@ -1,19 +0,0 @@
import{_ as s,c as a,o as e,ae as l}from"./chunks/framework.U1Gow_7P.js";const c=JSON.parse('{"title":"Supported Platforms (CI Tested)","description":"","frontmatter":{},"headers":[],"relativePath":"build.md","filePath":"en/build.md"}'),t={name:"build.md"};function n(h,i,p,k,r,d){return e(),a("div",null,i[0]||(i[0]=[l(`<h1 id="supported-platforms-ci-tested" tabindex="-1">Supported Platforms (CI Tested) <a class="header-anchor" href="#supported-platforms-ci-tested" aria-label="Permalink to &quot;Supported Platforms (CI Tested)&quot;"></a></h1><ul><li>Windows</li><li>Linux</li><li>MacOS</li></ul><h1 id="dependencies" tabindex="-1">Dependencies <a class="header-anchor" href="#dependencies" aria-label="Permalink to &quot;Dependencies&quot;"></a></h1><ul><li>C++23-compatible compiler (currently only clang &gt;=19 supported)</li><li>libstdc++ &gt;= 14 (for linux)</li><li>CMake/Xmake</li><li><a href="https://github.com/marzer/tomlplusplus" target="_blank" rel="noreferrer">tomlplusplus</a></li><li><a href="https://github.com/libuv/libuv" target="_blank" rel="noreferrer">libuv</a></li><li><a href="https://github.com/llvm/llvm-project" target="_blank" rel="noreferrer">LLVM</a> &gt;= 20</li><li><a href="https://github.com/google/googletest" target="_blank" rel="noreferrer">googletest</a> (optional)</li></ul><h1 id="building" tabindex="-1">Building <a class="header-anchor" href="#building" aria-label="Permalink to &quot;Building&quot;"></a></h1><h2 id="llvm" tabindex="-1">LLVM <a class="header-anchor" href="#llvm" aria-label="Permalink to &quot;LLVM&quot;"></a></h2><p>We provide precompiled LLVM binaries for those who don&#39;t want to manually build LLVM. If you want to use your own version or debug LLVM, you can continue reading.</p><ul><li><p>If you have experience with xmake, you can directly use our script for building LLVM: <a href="https://github.com/clice-project/llvm-binary/blob/main/xmake.lua" target="_blank" rel="noreferrer">https://github.com/clice-project/llvm-binary/blob/main/xmake.lua</a></p></li><li><p>Manually build LLVM yourself.</p></li></ul><p>clice requires clang&#39;s private headers for compilation:</p><ul><li><code>clang/lib/Sema/CoroutineStmtBuilder.h</code></li><li><code>clang/lib/Sema/TypeLocBuilder.h</code></li><li><code>clang/lib/Sema/TreeTransform.h</code></li></ul><p>Copy these headers to either:</p><ul><li><code>&lt;clice_dir&gt;/include/clang/Sema</code></li><li><code>&lt;LLVM_INSTALL_PATH&gt;/include/clang/Sema</code></li></ul><p>We provide a script to download these headers to <code>&lt;clice_dir&gt;/include/clang/Sema</code> (require xmake).</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">xmake</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> l</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> scripts/fetch-clang-headers.lua</span></span></code></pre></div><h2 id="cmake" tabindex="-1">CMake <a class="header-anchor" href="#cmake" aria-label="Permalink to &quot;CMake&quot;"></a></h2><p>We use CMake <code>find_package</code> in CONFIG mode for dependency resolution.</p><p>LLVM precompiled binaries must be installed at <code>-DLLVM_INSTALL_PATH=path/to/llvm</code>.</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># .github/workflows/cmake.yml</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># Linux precompiled binary require glibc 2.31 (build on ubuntu 20.04)</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">$</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> mkdir</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -p</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> ./.llvm</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">$</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> curl</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -L</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;https://github.com/clice-project/llvm-binary/releases/download/20.0.0/x86_64-linux-gnu-release.tar.xz&quot;</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> tar</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -xJ</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -C</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> ./.llvm</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># MacOS precompiled binary require macos15+</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">$</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> mkdir</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -p</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> ./.llvm</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">$</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> curl</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -L</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;https://github.com/clice-project/llvm-binary/releases/download/20.1.5/arm64-macosx-apple-release.tar.xz&quot;</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> tar</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -xJ</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -C</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> ./.llvm</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># windows precompiled binary only MD runtime support</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">$</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> curl</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -O</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -L</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;https://github.com/clice-project/llvm-binary/releases/download/20.0.0/x64-windows-msvc-release.7z&quot;</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">$</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> 7z</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> x</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> x64-windows-msvc-release.7z</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;-o.llvm&quot;</span></span></code></pre></div><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">$</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> cmake</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -B</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> build</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -DCLICE_ENABLE_TEST=OFF</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -DLLVM_INSTALL_PATH=.llvm</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">$</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> cmake</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --build</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> build</span></span></code></pre></div><div class="important custom-block github-alert"><p class="custom-block-title">IMPORTANT</p><p></p><p>The precompiled binary for MacOS is compiled by homebrew llvm@20.</p><p>Please use the same toolchain to build clice, DO NOT use Apple Clang.</p></div><h2 id="xmake" tabindex="-1">Xmake <a class="header-anchor" href="#xmake" aria-label="Permalink to &quot;Xmake&quot;"></a></h2><p>When using Xmake, all dependencies will be automatically handled.</p><p>Xmake will find system packages using pkg-config or package managers (e.g., pacman, apt, ...).</p><p>If not found, Xmake falls back to downloading dependencies from GitHub, then building and installing them locally.</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">$</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> xmake</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> f</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -c</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --dev=y</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --enable_test=n</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --toolchain=clang</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">$</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> xmake</span></span></code></pre></div><blockquote><p>The <code>dev</code> option will build dependencies using Ninja and set the runtime library to MD (Windows only).</p></blockquote><h1 id="for-developer" tabindex="-1">For developer <a class="header-anchor" href="#for-developer" aria-label="Permalink to &quot;For developer&quot;"></a></h1><h2 id="cmake-1" tabindex="-1">cmake <a class="header-anchor" href="#cmake-1" aria-label="Permalink to &quot;cmake&quot;"></a></h2><p>Recommended workflow using CMakePresets (require <a href="https://github.com/ninja-build/ninja" target="_blank" rel="noreferrer">ninja</a>):</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">$</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> cmake</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --preset</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> release</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">$</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> cmake</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --build</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --preset</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> release</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">$</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> ./build/bin/unit_tests</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --test-dir=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;./tests&quot;</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --resource-dir=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;./.llvm/lib/clang/20&quot;</span></span></code></pre></div><p>If your system does not have the clang-20 toolchain, please modify <code>cmake/toolchain.cmake</code> to specify the clang version.</p><h2 id="xmake-1" tabindex="-1">xmake <a class="header-anchor" href="#xmake-1" aria-label="Permalink to &quot;xmake&quot;"></a></h2><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">$</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> xmake</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> f</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -c</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --toolchain=clang</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">$</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> xmake</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> build</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --all</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">$</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> xmake</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> test</span></span></code></pre></div><p>If your system does not have the clang-20 toolchain, please pass <code>--toolchain=clang-19</code> to specify the clang version.</p>`,34)]))}const F=s(t,[["render",n]]);export{c as __pageData,F as default};

View File

@@ -1 +0,0 @@
import{_ as s,c as a,o as e,ae as l}from"./chunks/framework.U1Gow_7P.js";const c=JSON.parse('{"title":"Supported Platforms (CI Tested)","description":"","frontmatter":{},"headers":[],"relativePath":"build.md","filePath":"en/build.md"}'),t={name:"build.md"};function n(h,i,p,k,r,d){return e(),a("div",null,i[0]||(i[0]=[l("",34)]))}const F=s(t,[["render",n]]);export{c as __pageData,F as default};

View File

@@ -1 +0,0 @@
import{_ as t,c as a,o as s,ae as i}from"./chunks/framework.U1Gow_7P.js";const k=JSON.parse('{"title":"Configuration","description":"","frontmatter":{},"headers":[],"relativePath":"configuration.md","filePath":"en/configuration.md"}'),o={name:"configuration.md"};function n(d,e,l,h,r,c){return s(),a("div",null,e[0]||(e[0]=[i("",60)]))}const u=t(o,[["render",n]]);export{k as __pageData,u as default};

View File

@@ -1 +0,0 @@
import{_ as e,c as n,o,j as r}from"./chunks/framework.U1Gow_7P.js";const u=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"contribution.md","filePath":"en/contribution.md"}'),a={name:"contribution.md"};function i(s,t,c,l,p,d){return o(),n("div",null,t[0]||(t[0]=[r("p",null,"Comment style: lowercase at the beginning.",-1)]))}const _=e(a,[["render",i]]);export{u as __pageData,_ as default};

View File

@@ -1 +0,0 @@
import{_ as e,c as n,o,j as r}from"./chunks/framework.U1Gow_7P.js";const u=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"contribution.md","filePath":"en/contribution.md"}'),a={name:"contribution.md"};function i(s,t,c,l,p,d){return o(),n("div",null,t[0]||(t[0]=[r("p",null,"Comment style: lowercase at the beginning.",-1)]))}const _=e(a,[["render",i]]);export{u as __pageData,_ as default};

View File

@@ -1 +0,0 @@
import{_ as a,c as t,o,ae as l}from"./chunks/framework.U1Gow_7P.js";const u=JSON.parse('{"title":"Document Symbol","description":"","frontmatter":{},"headers":[],"relativePath":"feature/document-symbol.md","filePath":"en/feature/document-symbol.md"}'),s={name:"feature/document-symbol.md"};function d(r,e,i,c,n,p){return o(),t("div",null,e[0]||(e[0]=[l('<h1 id="document-symbol" tabindex="-1">Document Symbol <a class="header-anchor" href="#document-symbol" aria-label="Permalink to &quot;Document Symbol&quot;"></a></h1><h2 id="supported-case" tabindex="-1">Supported Case <a class="header-anchor" href="#supported-case" aria-label="Permalink to &quot;Supported Case&quot;"></a></h2><p>The full cases mentioned in LSP are listed in.</p><p>In clice, the following symbols is included:</p><ol><li><p>Namespace</p></li><li><p>Free function declaration</p></li><li><p>Enum, and it&#39;s members</p></li><li><p>Struct, class, add it&#39;s fields or methods.<br> Abstract class is specified as <code>Interface</code>.</p></li><li><p>Non-local and non-parameter variables<br> They were specified as <code>Constant</code> or <code>Variable</code> based on their declaration.</p></li></ol><p>For all above case, a deprecated tag will be added if the item is marked with <code>[[deprecated]]</code>.</p>',6)]))}const b=a(s,[["render",d]]);export{u as __pageData,b as default};

View File

@@ -1 +0,0 @@
import{_ as a,c as t,o,ae as l}from"./chunks/framework.U1Gow_7P.js";const u=JSON.parse('{"title":"Document Symbol","description":"","frontmatter":{},"headers":[],"relativePath":"feature/document-symbol.md","filePath":"en/feature/document-symbol.md"}'),s={name:"feature/document-symbol.md"};function d(r,e,i,c,n,p){return o(),t("div",null,e[0]||(e[0]=[l("",6)]))}const b=a(s,[["render",d]]);export{u as __pageData,b as default};

View File

@@ -1 +0,0 @@
import{_ as a,c as i,o as n,ae as t}from"./chunks/framework.U1Gow_7P.js";const f=JSON.parse('{"title":"Folding Range","description":"","frontmatter":{},"headers":[],"relativePath":"feature/folding-range.md","filePath":"en/feature/folding-range.md"}'),l={name:"feature/folding-range.md"};function o(r,e,s,d,c,u){return n(),i("div",null,e[0]||(e[0]=[t('<h1 id="folding-range" tabindex="-1">Folding Range <a class="header-anchor" href="#folding-range" aria-label="Permalink to &quot;Folding Range&quot;"></a></h1><h2 id="supported-cases" tabindex="-1">Supported Cases <a class="header-anchor" href="#supported-cases" aria-label="Permalink to &quot;Supported Cases&quot;"></a></h2><ul><li>condition macro</li><li>namespace</li><li>enum / struct / union declaration</li><li>access control block</li><li>funtion parameter list</li><li>funtion body</li><li>function call expression</li><li>compound statement</li><li>initialize list expression</li><li>lambda capture list</li></ul>',3)]))}const _=a(l,[["render",o]]);export{f as __pageData,_ as default};

View File

@@ -1 +0,0 @@
import{_ as a,c as i,o as n,ae as t}from"./chunks/framework.U1Gow_7P.js";const f=JSON.parse('{"title":"Folding Range","description":"","frontmatter":{},"headers":[],"relativePath":"feature/folding-range.md","filePath":"en/feature/folding-range.md"}'),l={name:"feature/folding-range.md"};function o(r,e,s,d,c,u){return n(),i("div",null,e[0]||(e[0]=[t("",3)]))}const _=a(l,[["render",o]]);export{f as __pageData,_ as default};

View File

@@ -1 +0,0 @@
import{_ as a,c as i,o as n,ae as t}from"./chunks/framework.U1Gow_7P.js";const p=JSON.parse('{"title":"Inlay Hint","description":"","frontmatter":{},"headers":[],"relativePath":"feature/inlay-hint.md","filePath":"en/feature/inlay-hint.md"}'),o={name:"feature/inlay-hint.md"};function r(l,e,d,c,s,u){return n(),i("div",null,e[0]||(e[0]=[t('<h1 id="inlay-hint" tabindex="-1">Inlay Hint <a class="header-anchor" href="#inlay-hint" aria-label="Permalink to &quot;Inlay Hint&quot;"></a></h1><h2 id="supported-case" tabindex="-1">Supported Case <a class="header-anchor" href="#supported-case" aria-label="Permalink to &quot;Supported Case&quot;"></a></h2><ol><li>Type hint for variable declared with <code>auto</code> keywords in <code>function/if/for/structure-binding</code>.</li><li>Return type hint for <code>function/lambda</code> body.</li><li>Parameter name in function call expression.</li><li>Block end hint for <code>struct/class/enum</code> declaration and <code>function/lambda</code> body.</li><li>Array index for elements in initialize list expression.</li><li>Value of <code>sizeof</code> and <code>alignof</code> in <code>struct/class</code> defination.</li></ol><p>There is a configurable option, and some examples.</p>',4)]))}const h=a(o,[["render",r]]);export{p as __pageData,h as default};

View File

@@ -1 +0,0 @@
import{_ as a,c as i,o as n,ae as t}from"./chunks/framework.U1Gow_7P.js";const p=JSON.parse('{"title":"Inlay Hint","description":"","frontmatter":{},"headers":[],"relativePath":"feature/inlay-hint.md","filePath":"en/feature/inlay-hint.md"}'),o={name:"feature/inlay-hint.md"};function r(l,e,d,c,s,u){return n(),i("div",null,e[0]||(e[0]=[t("",4)]))}const h=a(o,[["render",r]]);export{p as __pageData,h as default};

View File

@@ -1 +0,0 @@
import{_ as e,c as t,o as a}from"./chunks/framework.U1Gow_7P.js";const _=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"feature/semantic-tokens.md","filePath":"en/feature/semantic-tokens.md"}'),n={name:"feature/semantic-tokens.md"};function s(o,r,c,i,m,f){return a(),t("div")}const d=e(n,[["render",s]]);export{_ as __pageData,d as default};

View File

@@ -1 +0,0 @@
import{_ as e,c as t,o as a}from"./chunks/framework.U1Gow_7P.js";const _=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"feature/semantic-tokens.md","filePath":"en/feature/semantic-tokens.md"}'),n={name:"feature/semantic-tokens.md"};function s(o,r,c,i,m,f){return a(),t("div")}const d=e(n,[["render",s]]);export{_ as __pageData,d as default};

View File

@@ -1 +0,0 @@
import{_ as e,c as t,o as r,ae as i}from"./chunks/framework.U1Gow_7P.js";const m=JSON.parse('{"title":"Qucik started","description":"","frontmatter":{},"headers":[],"relativePath":"guide/quick-start.md","filePath":"en/guide/quick-start.md"}'),o={name:"guide/quick-start.md"};function s(l,a,d,n,h,u){return r(),t("div",null,a[0]||(a[0]=[i('<h1 id="qucik-started" tabindex="-1">Qucik started <a class="header-anchor" href="#qucik-started" aria-label="Permalink to &quot;Qucik started&quot;"></a></h1><h2 id="installation" tabindex="-1">Installation <a class="header-anchor" href="#installation" aria-label="Permalink to &quot;Installation&quot;"></a></h2><h2 id="editor-plugins" tabindex="-1">Editor plugins <a class="header-anchor" href="#editor-plugins" aria-label="Permalink to &quot;Editor plugins&quot;"></a></h2><h3 id="visual-studio-code" tabindex="-1">Visual Studio Code <a class="header-anchor" href="#visual-studio-code" aria-label="Permalink to &quot;Visual Studio Code&quot;"></a></h3><h3 id="vim-neovim" tabindex="-1">Vim/Neovim <a class="header-anchor" href="#vim-neovim" aria-label="Permalink to &quot;Vim/Neovim&quot;"></a></h3><h3 id="others" tabindex="-1">Others <a class="header-anchor" href="#others" aria-label="Permalink to &quot;Others&quot;"></a></h3><h2 id="project-setup" tabindex="-1">Project setup <a class="header-anchor" href="#project-setup" aria-label="Permalink to &quot;Project setup&quot;"></a></h2><h4 id="cmake" tabindex="-1">CMake <a class="header-anchor" href="#cmake" aria-label="Permalink to &quot;CMake&quot;"></a></h4><h4 id="bazel" tabindex="-1">Bazel <a class="header-anchor" href="#bazel" aria-label="Permalink to &quot;Bazel&quot;"></a></h4><h4 id="others-1" tabindex="-1">Others <a class="header-anchor" href="#others-1" aria-label="Permalink to &quot;Others&quot;"></a></h4>',10)]))}const q=e(o,[["render",s]]);export{m as __pageData,q as default};

View File

@@ -1 +0,0 @@
import{_ as e,c as t,o as r,ae as i}from"./chunks/framework.U1Gow_7P.js";const m=JSON.parse('{"title":"Qucik started","description":"","frontmatter":{},"headers":[],"relativePath":"guide/quick-start.md","filePath":"en/guide/quick-start.md"}'),o={name:"guide/quick-start.md"};function s(l,a,d,n,h,u){return r(),t("div",null,a[0]||(a[0]=[i("",10)]))}const q=e(o,[["render",s]]);export{m as __pageData,q as default};

View File

@@ -0,0 +1 @@
import{_ as r,c as a,o as c,j as t,a as i}from"./chunks/framework.U1Gow_7P.js";const m=JSON.parse('{"title":"Architecture","description":"","frontmatter":{},"headers":[],"relativePath":"zh/design/architecture.md","filePath":"zh/design/architecture.md"}'),s={name:"zh/design/architecture.md"};function n(o,e,d,h,u,l){return c(),a("div",null,e[0]||(e[0]=[t("h1",{id:"architecture",tabindex:"-1"},[i("Architecture "),t("a",{class:"header-anchor",href:"#architecture","aria-label":'Permalink to "Architecture"'},"")],-1)]))}const f=r(s,[["render",n]]);export{m as __pageData,f as default};

View File

@@ -0,0 +1 @@
import{_ as r,c as a,o as c,j as t,a as i}from"./chunks/framework.U1Gow_7P.js";const m=JSON.parse('{"title":"Architecture","description":"","frontmatter":{},"headers":[],"relativePath":"zh/design/architecture.md","filePath":"zh/design/architecture.md"}'),s={name:"zh/design/architecture.md"};function n(o,e,d,h,u,l){return c(),a("div",null,e[0]||(e[0]=[t("h1",{id:"architecture",tabindex:"-1"},[i("Architecture "),t("a",{class:"header-anchor",href:"#architecture","aria-label":'Permalink to "Architecture"'},"")],-1)]))}const f=r(s,[["render",n]]);export{m as __pageData,f as default};

View File

@@ -1 +0,0 @@
import{_ as t,c as e,o as a}from"./chunks/framework.U1Gow_7P.js";const l=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"zh/design/compilation-task.md","filePath":"zh/design/compilation-task.md"}'),o={name:"zh/design/compilation-task.md"};function s(n,i,c,r,p,d){return a(),e("div")}const _=t(o,[["render",s]]);export{l as __pageData,_ as default};

View File

@@ -1 +0,0 @@
import{_ as t,c as e,o as a}from"./chunks/framework.U1Gow_7P.js";const l=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"zh/design/compilation-task.md","filePath":"zh/design/compilation-task.md"}'),o={name:"zh/design/compilation-task.md"};function s(n,i,c,r,p,d){return a(),e("div")}const _=t(o,[["render",s]]);export{l as __pageData,_ as default};

View File

@@ -0,0 +1,5 @@
import{_ as i,c as s,o as e,ae as n}from"./chunks/framework.U1Gow_7P.js";const k=JSON.parse('{"title":"Compilation","description":"","frontmatter":{},"headers":[],"relativePath":"zh/design/compilation.md","filePath":"zh/design/compilation.md"}'),t={name:"zh/design/compilation.md"};function l(p,a,o,r,h,c){return e(),s("div",null,a[0]||(a[0]=[n(`<h1 id="compilation" tabindex="-1">Compilation <a class="header-anchor" href="#compilation" aria-label="Permalink to &quot;Compilation&quot;"></a></h1><h2 id="incremental-parsing" tabindex="-1">Incremental Parsing <a class="header-anchor" href="#incremental-parsing" aria-label="Permalink to &quot;Incremental Parsing&quot;"></a></h2><p>每当你修改代码时clice 都必须重新解析文件。clice 使用一种叫做 preamble 的机制实现增量编译以加快重新解析速度。preamble 可被视为 <a href="https://clang.llvm.org/docs/PCHInternals.html" target="_blank" rel="noreferrer">Precompiled Header</a> 的一种特殊情况(内嵌在源文件中)。在打开文件的时候,它会将文件开头的几个预处理指令(被叫做 preamble构建成 PCH 缓存在磁盘上,后续在解析的时候则可以直接加载 PCH 文件,从而跳过前面几个预处理指令,这样可以大大减少要重新解析的代码量。</p><p>例如,对于如下的代码</p><div class="language-cpp vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">cpp</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">#include</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &lt;iostream&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">int</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> main</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> () {</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> std</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">::cout </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">&lt;&lt;</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;Hello world!&quot;</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> &lt;&lt;</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> std</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">::endl;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span></code></pre></div><p><code>iostream</code> 这个头文件大概有 2w 行代码clice 会先把 <code>#include &lt;iostream&gt;</code> 这一行代码构建成 PCH 文件,在完成之后在使用这个 PCH 文件来解析后面的代码。这样的话后续重新解析的代码量就只剩 5 行了,而不是原本的 2w 行,速度会变得非常快。除非你修改了 preamble 部分的代码,导致需要构建新的 preamble。</p><h2 id="cancel-compilation" tabindex="-1">Cancel Compilation <a class="header-anchor" href="#cancel-compilation" aria-label="Permalink to &quot;Cancel Compilation&quot;"></a></h2>`,7)]))}const m=i(t,[["render",l]]);export{k as __pageData,m as default};

View File

@@ -0,0 +1 @@
import{_ as i,c as s,o as e,ae as n}from"./chunks/framework.U1Gow_7P.js";const k=JSON.parse('{"title":"Compilation","description":"","frontmatter":{},"headers":[],"relativePath":"zh/design/compilation.md","filePath":"zh/design/compilation.md"}'),t={name:"zh/design/compilation.md"};function l(p,a,o,r,h,c){return e(),s("div",null,a[0]||(a[0]=[n("",7)]))}const m=i(t,[["render",l]]);export{k as __pageData,m as default};

View File

@@ -0,0 +1 @@
import{_ as a,c as r,o as n,j as t,a as o}from"./chunks/framework.U1Gow_7P.js";const m=JSON.parse('{"title":"Header Context","description":"","frontmatter":{},"headers":[],"relativePath":"zh/design/header-context.md","filePath":"zh/design/header-context.md"}'),d={name:"zh/design/header-context.md"};function s(c,e,i,h,x,l){return n(),r("div",null,e[0]||(e[0]=[t("h1",{id:"header-context",tabindex:"-1"},[o("Header Context "),t("a",{class:"header-anchor",href:"#header-context","aria-label":'Permalink to "Header Context"'},"")],-1)]))}const f=a(d,[["render",s]]);export{m as __pageData,f as default};

View File

@@ -0,0 +1 @@
import{_ as a,c as r,o as n,j as t,a as o}from"./chunks/framework.U1Gow_7P.js";const m=JSON.parse('{"title":"Header Context","description":"","frontmatter":{},"headers":[],"relativePath":"zh/design/header-context.md","filePath":"zh/design/header-context.md"}'),d={name:"zh/design/header-context.md"};function s(c,e,i,h,x,l){return n(),r("div",null,e[0]||(e[0]=[t("h1",{id:"header-context",tabindex:"-1"},[o("Header Context "),t("a",{class:"header-anchor",href:"#header-context","aria-label":'Permalink to "Header Context"'},"")],-1)]))}const f=a(d,[["render",s]]);export{m as __pageData,f as default};

View File

@@ -1 +0,0 @@
import{_ as e,c as t,o as a}from"./chunks/framework.U1Gow_7P.js";const _=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"zh/design/header-context.md","filePath":"zh/design/header-context.md"}'),n={name:"zh/design/header-context.md"};function r(o,s,c,d,i,h){return a(),t("div")}const m=e(n,[["render",r]]);export{_ as __pageData,m as default};

View File

@@ -1 +0,0 @@
import{_ as e,c as t,o as a}from"./chunks/framework.U1Gow_7P.js";const _=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"zh/design/header-context.md","filePath":"zh/design/header-context.md"}'),n={name:"zh/design/header-context.md"};function r(o,s,c,d,i,h){return a(),t("div")}const m=e(n,[["render",r]]);export{_ as __pageData,m as default};

View File

@@ -0,0 +1 @@
import{_ as n,c as t,o as d,j as a,a as r}from"./chunks/framework.U1Gow_7P.js";const f=JSON.parse('{"title":"Index","description":"","frontmatter":{},"headers":[],"relativePath":"zh/design/index.md","filePath":"zh/design/index.md"}'),s={name:"zh/design/index.md"};function i(o,e,c,x,l,p){return d(),t("div",null,e[0]||(e[0]=[a("h1",{id:"index",tabindex:"-1"},[r("Index "),a("a",{class:"header-anchor",href:"#index","aria-label":'Permalink to "Index"'},"")],-1)]))}const h=n(s,[["render",i]]);export{f as __pageData,h as default};

View File

@@ -0,0 +1 @@
import{_ as n,c as t,o as d,j as a,a as r}from"./chunks/framework.U1Gow_7P.js";const f=JSON.parse('{"title":"Index","description":"","frontmatter":{},"headers":[],"relativePath":"zh/design/index.md","filePath":"zh/design/index.md"}'),s={name:"zh/design/index.md"};function i(o,e,c,x,l,p){return d(),t("div",null,e[0]||(e[0]=[a("h1",{id:"index",tabindex:"-1"},[r("Index "),a("a",{class:"header-anchor",href:"#index","aria-label":'Permalink to "Index"'},"")],-1)]))}const h=n(s,[["render",i]]);export{f as __pageData,h as default};

View File

@@ -0,0 +1 @@
import{_ as a,c as r,o as s,j as t,a as l}from"./chunks/framework.U1Gow_7P.js";const f=JSON.parse('{"title":"Template Resolver","description":"","frontmatter":{},"headers":[],"relativePath":"zh/design/template-resolver.md","filePath":"zh/design/template-resolver.md"}'),o={name:"zh/design/template-resolver.md"};function n(p,e,m,d,i,c){return s(),r("div",null,e[0]||(e[0]=[t("h1",{id:"template-resolver",tabindex:"-1"},[l("Template Resolver "),t("a",{class:"header-anchor",href:"#template-resolver","aria-label":'Permalink to "Template Resolver"'},"")],-1)]))}const h=a(o,[["render",n]]);export{f as __pageData,h as default};

View File

@@ -0,0 +1 @@
import{_ as a,c as r,o as s,j as t,a as l}from"./chunks/framework.U1Gow_7P.js";const f=JSON.parse('{"title":"Template Resolver","description":"","frontmatter":{},"headers":[],"relativePath":"zh/design/template-resolver.md","filePath":"zh/design/template-resolver.md"}'),o={name:"zh/design/template-resolver.md"};function n(p,e,m,d,i,c){return s(),r("div",null,e[0]||(e[0]=[t("h1",{id:"template-resolver",tabindex:"-1"},[l("Template Resolver "),t("a",{class:"header-anchor",href:"#template-resolver","aria-label":'Permalink to "Template Resolver"'},"")],-1)]))}const h=a(o,[["render",n]]);export{f as __pageData,h as default};

View File

@@ -1 +0,0 @@
import{_ as e,c as t,o as r}from"./chunks/framework.U1Gow_7P.js";const m=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"zh/design/template-resolver.md","filePath":"zh/design/template-resolver.md"}'),a={name:"zh/design/template-resolver.md"};function s(o,n,c,l,p,d){return r(),t("div")}const _=e(a,[["render",s]]);export{m as __pageData,_ as default};

View File

@@ -1 +0,0 @@
import{_ as e,c as t,o as r}from"./chunks/framework.U1Gow_7P.js";const m=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"zh/design/template-resolver.md","filePath":"zh/design/template-resolver.md"}'),a={name:"zh/design/template-resolver.md"};function s(o,n,c,l,p,d){return r(),t("div")}const _=e(a,[["render",s]]);export{m as __pageData,_ as default};

View File

@@ -1,4 +1,4 @@
import{_ as i,c as a,o as l,ae as e}from"./chunks/framework.U1Gow_7P.js";const o=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"zh/development/build.md","filePath":"zh/development/build.md"}'),t={name:"zh/development/build.md"};function n(h,s,p,k,r,d){return l(),a("div",null,s[0]||(s[0]=[e(`<h2 id="supported-platforms-ci-tested" tabindex="-1">Supported Platforms (CI Tested) <a class="header-anchor" href="#supported-platforms-ci-tested" aria-label="Permalink to &quot;Supported Platforms (CI Tested)&quot;"></a></h2><ul><li>Windows</li><li>Linux</li><li>MacOS</li></ul><h2 id="prerequisite" tabindex="-1">Prerequisite <a class="header-anchor" href="#prerequisite" aria-label="Permalink to &quot;Prerequisite&quot;"></a></h2><p>本小节介绍编译 clice 的前置依赖。</p><h3 id="toolchain" tabindex="-1">Toolchain <a class="header-anchor" href="#toolchain" aria-label="Permalink to &quot;Toolchain&quot;"></a></h3><ul><li>clang &gt;= 19</li><li>c++23 compitable standard library <ul><li>MSVC STL &gt;= 19.44(VS 2022 17.4)</li><li>GCC libstdc++ &gt;= 14</li><li>Clang libc++ &gt;= 20</li></ul></li></ul><p>clice 使用 C++23 作为语言标准 ,请确保有可用的 clang 19 以及以上的编译器,以及兼容 C++23 的标准库。</p><blockquote><p>clice 暂时只能使用 clang 编译,在未来我们会改进这一点,使其能使用 gcc 和 msvc 编译。</p></blockquote><h3 id="llvm-libs" tabindex="-1">LLVM Libs <a class="header-anchor" href="#llvm-libs" aria-label="Permalink to &quot;LLVM Libs&quot;"></a></h3><ul><li>20.1.5 &lt;= llvm libs &lt; 21</li></ul><p>由于 C++ 的语法太过复杂,自己编写一个新的 parser 是不现实的。clice 调用 clang 的 API 来 parse C++ 源文件获取 AST这意味它需要链接 llvm/clang libs。另外由于 clice 使用了 clang 的私有头文件,这些私有头文件在 llvm 发布的 binary release 中是没有的,所以不能直接使用系统的 llvm package。</p><p>如果你能找到系统的 llvm package 对应的 llvm commit将该 commit 下的如下三个文件</p><ul><li><code>clang/lib/Sema/CoroutineStmtBuilder.h</code></li><li><code>clang/lib/Sema/TypeLocBuilder.h</code></li><li><code>clang/lib/Sema/TreeTransform.h</code></li></ul><p>拷贝到 <code>LLVM_INSTALL_PATH/include/clang/Sema/</code> 中即可。</p><p>除了这种方法以外,还有两种办法获取 clice 所需的 llvm libs</p><ol><li>使用我们提供的预编译版本</li></ol><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># .github/workflows/cmake.yml</span></span>
import{_ as i,c as a,o as l,ae as e}from"./chunks/framework.U1Gow_7P.js";const o=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"zh/dev/build.md","filePath":"zh/dev/build.md"}'),t={name:"zh/dev/build.md"};function n(h,s,p,k,r,d){return l(),a("div",null,s[0]||(s[0]=[e(`<h2 id="supported-platforms-ci-tested" tabindex="-1">Supported Platforms (CI Tested) <a class="header-anchor" href="#supported-platforms-ci-tested" aria-label="Permalink to &quot;Supported Platforms (CI Tested)&quot;"></a></h2><ul><li>Windows</li><li>Linux</li><li>MacOS</li></ul><h2 id="prerequisite" tabindex="-1">Prerequisite <a class="header-anchor" href="#prerequisite" aria-label="Permalink to &quot;Prerequisite&quot;"></a></h2><p>本小节介绍编译 clice 的前置依赖。</p><h3 id="toolchain" tabindex="-1">Toolchain <a class="header-anchor" href="#toolchain" aria-label="Permalink to &quot;Toolchain&quot;"></a></h3><ul><li>clang &gt;= 19</li><li>c++23 compitable standard library <ul><li>MSVC STL &gt;= 19.44(VS 2022 17.4)</li><li>GCC libstdc++ &gt;= 14</li><li>Clang libc++ &gt;= 20</li></ul></li></ul><p>clice 使用 C++23 作为语言标准 ,请确保有可用的 clang 19 以及以上的编译器,以及兼容 C++23 的标准库。</p><blockquote><p>clice 暂时只能使用 clang 编译,在未来我们会改进这一点,使其能使用 gcc 和 msvc 编译。</p></blockquote><h3 id="llvm-libs" tabindex="-1">LLVM Libs <a class="header-anchor" href="#llvm-libs" aria-label="Permalink to &quot;LLVM Libs&quot;"></a></h3><ul><li>20.1.5 &lt;= llvm libs &lt; 21</li></ul><p>由于 C++ 的语法太过复杂,自己编写一个新的 parser 是不现实的。clice 调用 clang 的 API 来 parse C++ 源文件获取 AST这意味它需要链接 llvm/clang libs。另外由于 clice 使用了 clang 的私有头文件,这些私有头文件在 llvm 发布的 binary release 中是没有的,所以不能直接使用系统的 llvm package。</p><p>如果你能找到系统的 llvm package 对应的 llvm commit将该 commit 下的如下三个文件</p><ul><li><code>clang/lib/Sema/CoroutineStmtBuilder.h</code></li><li><code>clang/lib/Sema/TypeLocBuilder.h</code></li><li><code>clang/lib/Sema/TreeTransform.h</code></li></ul><p>拷贝到 <code>LLVM_INSTALL_PATH/include/clang/Sema/</code> 中即可。</p><p>除了这种方法以外,还有两种办法获取 clice 所需的 llvm libs</p><ol><li>使用我们提供的预编译版本</li></ol><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># .github/workflows/cmake.yml</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># Linux precompiled binary require glibc 2.35 (build on ubuntu 22.04)</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">$</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> mkdir</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -p</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> ./.llvm</span></span>

View File

@@ -0,0 +1 @@
import{_ as i,c as a,o as l,ae as e}from"./chunks/framework.U1Gow_7P.js";const o=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"zh/dev/build.md","filePath":"zh/dev/build.md"}'),t={name:"zh/dev/build.md"};function n(h,s,p,k,r,d){return l(),a("div",null,s[0]||(s[0]=[e("",42)]))}const F=i(t,[["render",n]]);export{o as __pageData,F as default};

View File

@@ -0,0 +1 @@
import{_ as o,c as n,o as r,j as t,a}from"./chunks/framework.U1Gow_7P.js";const m=JSON.parse('{"title":"Contribution","description":"","frontmatter":{},"headers":[],"relativePath":"zh/dev/contribution.md","filePath":"zh/dev/contribution.md"}'),i={name:"zh/dev/contribution.md"};function c(s,e,d,l,u,p){return r(),n("div",null,e[0]||(e[0]=[t("h1",{id:"contribution",tabindex:"-1"},[a("Contribution "),t("a",{class:"header-anchor",href:"#contribution","aria-label":'Permalink to "Contribution"'},"")],-1),t("p",null,"我们欢迎任何贡献!",-1)]))}const f=o(i,[["render",c]]);export{m as __pageData,f as default};

View File

@@ -0,0 +1 @@
import{_ as o,c as n,o as r,j as t,a}from"./chunks/framework.U1Gow_7P.js";const m=JSON.parse('{"title":"Contribution","description":"","frontmatter":{},"headers":[],"relativePath":"zh/dev/contribution.md","filePath":"zh/dev/contribution.md"}'),i={name:"zh/dev/contribution.md"};function c(s,e,d,l,u,p){return r(),n("div",null,e[0]||(e[0]=[t("h1",{id:"contribution",tabindex:"-1"},[a("Contribution "),t("a",{class:"header-anchor",href:"#contribution","aria-label":'Permalink to "Contribution"'},"")],-1),t("p",null,"我们欢迎任何贡献!",-1)]))}const f=o(i,[["render",c]]);export{m as __pageData,f as default};

View File

@@ -1 +0,0 @@
import{_ as i,c as a,o as l,ae as e}from"./chunks/framework.U1Gow_7P.js";const o=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"zh/development/build.md","filePath":"zh/development/build.md"}'),t={name:"zh/development/build.md"};function n(h,s,p,k,r,d){return l(),a("div",null,s[0]||(s[0]=[e("",42)]))}const F=i(t,[["render",n]]);export{o as __pageData,F as default};

View File

@@ -1 +0,0 @@
import{_ as a,c as e,o,ae as n}from"./chunks/framework.U1Gow_7P.js";const _=JSON.parse('{"title":"Contribution","description":"","frontmatter":{},"headers":[],"relativePath":"zh/development/contribution.md","filePath":"zh/development/contribution.md"}'),r={name:"zh/development/contribution.md"};function i(l,t,c,d,h,s){return o(),e("div",null,t[0]||(t[0]=[n('<h1 id="contribution" tabindex="-1">Contribution <a class="header-anchor" href="#contribution" aria-label="Permalink to &quot;Contribution&quot;"></a></h1><h2 id="" tabindex="-1"><a class="header-anchor" href="#" aria-label="Permalink to &quot;&quot;"></a></h2><h2 id="-1" tabindex="-1"><a class="header-anchor" href="#-1" aria-label="Permalink to &quot;&quot;"></a></h2><h2 id="-2" tabindex="-1"><a class="header-anchor" href="#-2" aria-label="Permalink to &quot;&quot;"></a></h2>',4)]))}const b=a(r,[["render",i]]);export{_ as __pageData,b as default};

View File

@@ -1 +0,0 @@
import{_ as a,c as e,o,ae as n}from"./chunks/framework.U1Gow_7P.js";const _=JSON.parse('{"title":"Contribution","description":"","frontmatter":{},"headers":[],"relativePath":"zh/development/contribution.md","filePath":"zh/development/contribution.md"}'),r={name:"zh/development/contribution.md"};function i(l,t,c,d,h,s){return o(),e("div",null,t[0]||(t[0]=[n("",4)]))}const b=a(r,[["render",i]]);export{_ as __pageData,b as default};

View File

@@ -1,4 +1,4 @@
import{_ as t,c as a,o as s,ae as i}from"./chunks/framework.U1Gow_7P.js";const k=JSON.parse('{"title":"Configuration","description":"","frontmatter":{},"headers":[],"relativePath":"configuration.md","filePath":"en/configuration.md"}'),o={name:"configuration.md"};function n(d,e,l,h,r,c){return s(),a("div",null,e[0]||(e[0]=[i(`<h1 id="configuration" tabindex="-1">Configuration <a class="header-anchor" href="#configuration" aria-label="Permalink to &quot;Configuration&quot;"></a></h1><p>This is the document of</p><h2 id="server" tabindex="-1">Server <a class="header-anchor" href="#server" aria-label="Permalink to &quot;Server&quot;"></a></h2><table tabindex="0"><thead><tr><th>Name</th><th>Type</th><th>Default</th></tr></thead><tbody><tr><td><code>server.moduleSupport</code></td><td><code>boolean</code></td><td><code>false</code></td></tr></tbody></table><p>Whether to enable module support. <br></p><table tabindex="0"><thead><tr><th>Name</th><th>Type</th><th>Default</th></tr></thead><tbody><tr><td><code>server.overSearch</code></td><td><code>boolean</code></td><td><code>true</code></td></tr></tbody></table><ul><li><code>false</code>: Limits the symbol search scope to files connected through the <strong>include graph</strong>, which is efficient but does not handle symbols defined independently in other files.</li></ul><p>For example:</p><div class="language-cpp vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">cpp</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">/// a.h</span></span>
import{_ as t,c as a,o as s,ae as i}from"./chunks/framework.U1Gow_7P.js";const k=JSON.parse('{"title":"Configuration","description":"","frontmatter":{},"headers":[],"relativePath":"zh/guide/configuration.md","filePath":"zh/guide/configuration.md"}'),o={name:"zh/guide/configuration.md"};function n(d,e,l,h,r,c){return s(),a("div",null,e[0]||(e[0]=[i(`<h1 id="configuration" tabindex="-1">Configuration <a class="header-anchor" href="#configuration" aria-label="Permalink to &quot;Configuration&quot;"></a></h1><p>This is the document of</p><h2 id="server" tabindex="-1">Server <a class="header-anchor" href="#server" aria-label="Permalink to &quot;Server&quot;"></a></h2><table tabindex="0"><thead><tr><th>Name</th><th>Type</th><th>Default</th></tr></thead><tbody><tr><td><code>server.moduleSupport</code></td><td><code>boolean</code></td><td><code>false</code></td></tr></tbody></table><p>Whether to enable module support. <br></p><table tabindex="0"><thead><tr><th>Name</th><th>Type</th><th>Default</th></tr></thead><tbody><tr><td><code>server.overSearch</code></td><td><code>boolean</code></td><td><code>true</code></td></tr></tbody></table><ul><li><code>false</code>: Limits the symbol search scope to files connected through the <strong>include graph</strong>, which is efficient but does not handle symbols defined independently in other files.</li></ul><p>For example:</p><div class="language-cpp vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">cpp</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">/// a.h</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">struct</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> Foo</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {};</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">/// b.cpp</span></span>

View File

@@ -0,0 +1 @@
import{_ as t,c as a,o as s,ae as i}from"./chunks/framework.U1Gow_7P.js";const k=JSON.parse('{"title":"Configuration","description":"","frontmatter":{},"headers":[],"relativePath":"zh/guide/configuration.md","filePath":"zh/guide/configuration.md"}'),o={name:"zh/guide/configuration.md"};function n(d,e,l,h,r,c){return s(),a("div",null,e[0]||(e[0]=[i("",60)]))}const u=t(o,[["render",n]]);export{k as __pageData,u as default};

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
import{_ as e,c as t,o as i,ae as o}from"./chunks/framework.U1Gow_7P.js";const p=JSON.parse('{"title":"Quick Start","description":"","frontmatter":{},"headers":[],"relativePath":"zh/guide/quick-start.md","filePath":"zh/guide/quick-start.md"}'),r={name:"zh/guide/quick-start.md"};function l(c,a,s,n,d,h){return i(),t("div",null,a[0]||(a[0]=[o("",30)]))}const m=e(r,[["render",l]]);export{p as __pageData,m as default};
import{_ as e,c as t,o as i,ae as o}from"./chunks/framework.U1Gow_7P.js";const p=JSON.parse('{"title":"Quick Start","description":"","frontmatter":{},"headers":[],"relativePath":"zh/guide/quick-start.md","filePath":"zh/guide/quick-start.md"}'),r={name:"zh/guide/quick-start.md"};function l(c,a,s,d,n,h){return i(),t("div",null,a[0]||(a[0]=[o("",30)]))}const m=e(r,[["render",l]]);export{p as __pageData,m as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -48,7 +48,7 @@
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> std</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">::vector</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">&lt;</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">std</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">::vector</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">&lt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">T</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">&gt;&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> vec2;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> vec2[</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">].</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">^</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span></code></pre></div><p>According to the C++ standard, the type of <code>vec2[0]</code> is <code>std::vector&lt;std::vector&lt;T&gt;&gt;::reference</code>. Oh, damn, still a dependent name.</p><h1 id="heuristic" tabindex="-1">Heuristic <a class="header-anchor" href="#heuristic" aria-label="Permalink to &quot;Heuristic&quot;"></a></h1></div></div></main><footer class="VPDocFooter" data-v-e6f2a212 data-v-1bcd8184><!--[--><!--]--><!----><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-1bcd8184><span class="visually-hidden" id="doc-footer-aria-label" data-v-1bcd8184>Pager</span><div class="pager" data-v-1bcd8184><!----></div><div class="pager" data-v-1bcd8184><a class="VPLink link pager-link next" href="/guide.html" data-v-1bcd8184><!--[--><span class="desc" data-v-1bcd8184>Next page</span><span class="title" data-v-1bcd8184>Guide</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><!----><!--[--><!--]--></div></div>
<script>window.__VP_HASH_MAP__=JSON.parse("{\"build.md\":\"Co74jVci\",\"configuration.md\":\"CpRedDOQ\",\"contribution.md\":\"Zb0EHW2I\",\"design_architecture.md\":\"C7gHe7F3\",\"design_clangd.md\":\"Bf0uxymm\",\"design_dependent-name.md\":\"CV61gbuX\",\"design_design.md\":\"C2BgqDzh\",\"design_index.md\":\"DRSC8Xmj\",\"design_markdown-examples.md\":\"CpB9tZ0M\",\"design_protocol.md\":\"DF8r9ZnS\",\"feature_document-symbol.md\":\"DsqxMq4k\",\"feature_folding-range.md\":\"2DTooAm1\",\"feature_inlay-hint.md\":\"D7ZN-35G\",\"feature_semantic-tokens.md\":\"B5B0Hwzv\",\"guide_quick-start.md\":\"CwDrTxXo\",\"index.md\":\"9zIdimQ1\",\"zh_design_compilation-task.md\":\"CRasWF8z\",\"zh_design_header-context.md\":\"JzQT9F1p\",\"zh_design_template-resolver.md\":\"fGt2KNxS\",\"zh_development_build.md\":\"DQ0u_rdw\",\"zh_development_contribution.md\":\"VhnPZehF\",\"zh_guide_quick-start.md\":\"DMOksTiB\",\"zh_guide_roadmap.md\":\"BIO2ru79\",\"zh_guide_what-is-clice.md\":\"C7OJIBOU\",\"zh_index.md\":\"CVx52Udt\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"clice\",\"description\":\"a powerful and modern C++ language server\",\"base\":\"/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"nav\":[{\"text\":\"Home\",\"link\":\"/\"},{\"text\":\"Examples\",\"link\":\"/markdown-examples\"}],\"sidebar\":[{\"text\":\"Guide\",\"items\":[{\"text\":\"Guide\",\"link\":\"/guide\"},{\"text\":\"Runtime API Examples\",\"link\":\"/api-examples\"}]}],\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/clice-project/clice\"}],\"outline\":\"deep\"},\"locales\":{\"root\":{\"label\":\"English\"},\"zh\":{\"label\":\"简体中文\"}},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
<script>window.__VP_HASH_MAP__=JSON.parse("{\"design_architecture.md\":\"C7gHe7F3\",\"design_clangd.md\":\"Bf0uxymm\",\"design_dependent-name.md\":\"CV61gbuX\",\"design_design.md\":\"C2BgqDzh\",\"design_index.md\":\"DRSC8Xmj\",\"design_markdown-examples.md\":\"CpB9tZ0M\",\"design_protocol.md\":\"DF8r9ZnS\",\"index.md\":\"9zIdimQ1\",\"zh_design_architecture.md\":\"CWdgG2wH\",\"zh_design_compilation.md\":\"DfE77o6C\",\"zh_design_header-context.md\":\"BEaf4C-z\",\"zh_design_index.md\":\"DHNbht8F\",\"zh_design_template-resolver.md\":\"DNGBj6oC\",\"zh_dev_build.md\":\"D0ygseBD\",\"zh_dev_contribution.md\":\"CtDPz8pA\",\"zh_guide_configuration.md\":\"C92jpGuF\",\"zh_guide_quick-start.md\":\"CcQPc5x5\",\"zh_guide_roadmap.md\":\"BIO2ru79\",\"zh_guide_what-is-clice.md\":\"C7OJIBOU\",\"zh_index.md\":\"CVx52Udt\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"clice\",\"description\":\"a powerful and modern C++ language server\",\"base\":\"/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"nav\":[{\"text\":\"Home\",\"link\":\"/\"},{\"text\":\"Examples\",\"link\":\"/markdown-examples\"}],\"sidebar\":[{\"text\":\"Guide\",\"items\":[{\"text\":\"Guide\",\"link\":\"/guide\"},{\"text\":\"Runtime API Examples\",\"link\":\"/api-examples\"}]}],\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/clice-project/clice\"}],\"outline\":\"deep\"},\"locales\":{\"root\":{\"label\":\"English\"},\"zh\":{\"label\":\"简体中文\"}},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
</body>
</html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -51,7 +51,7 @@
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">::: details</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">This is a details block.</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:::</span></span></code></pre></div><p><strong>Output</strong></p><div class="info custom-block"><p class="custom-block-title">INFO</p><p>This is an info box.</p></div><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>This is a tip.</p></div><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>This is a warning.</p></div><div class="danger custom-block"><p class="custom-block-title">DANGER</p><p>This is a dangerous warning.</p></div><details class="details custom-block"><summary>Details</summary><p>This is a details block.</p></details><h2 id="more" tabindex="-1">More <a class="header-anchor" href="#more" aria-label="Permalink to &quot;More&quot;"></a></h2><p>Check out the documentation for the <a href="https://vitepress.dev/guide/markdown" target="_blank" rel="noreferrer">full list of markdown extensions</a>.</p></div></div></main><footer class="VPDocFooter" data-v-e6f2a212 data-v-1bcd8184><!--[--><!--]--><!----><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-1bcd8184><span class="visually-hidden" id="doc-footer-aria-label" data-v-1bcd8184>Pager</span><div class="pager" data-v-1bcd8184><!----></div><div class="pager" data-v-1bcd8184><a class="VPLink link pager-link next" href="/guide.html" data-v-1bcd8184><!--[--><span class="desc" data-v-1bcd8184>Next page</span><span class="title" data-v-1bcd8184>Guide</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><!----><!--[--><!--]--></div></div>
<script>window.__VP_HASH_MAP__=JSON.parse("{\"build.md\":\"Co74jVci\",\"configuration.md\":\"CpRedDOQ\",\"contribution.md\":\"Zb0EHW2I\",\"design_architecture.md\":\"C7gHe7F3\",\"design_clangd.md\":\"Bf0uxymm\",\"design_dependent-name.md\":\"CV61gbuX\",\"design_design.md\":\"C2BgqDzh\",\"design_index.md\":\"DRSC8Xmj\",\"design_markdown-examples.md\":\"CpB9tZ0M\",\"design_protocol.md\":\"DF8r9ZnS\",\"feature_document-symbol.md\":\"DsqxMq4k\",\"feature_folding-range.md\":\"2DTooAm1\",\"feature_inlay-hint.md\":\"D7ZN-35G\",\"feature_semantic-tokens.md\":\"B5B0Hwzv\",\"guide_quick-start.md\":\"CwDrTxXo\",\"index.md\":\"9zIdimQ1\",\"zh_design_compilation-task.md\":\"CRasWF8z\",\"zh_design_header-context.md\":\"JzQT9F1p\",\"zh_design_template-resolver.md\":\"fGt2KNxS\",\"zh_development_build.md\":\"DQ0u_rdw\",\"zh_development_contribution.md\":\"VhnPZehF\",\"zh_guide_quick-start.md\":\"DMOksTiB\",\"zh_guide_roadmap.md\":\"BIO2ru79\",\"zh_guide_what-is-clice.md\":\"C7OJIBOU\",\"zh_index.md\":\"CVx52Udt\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"clice\",\"description\":\"a powerful and modern C++ language server\",\"base\":\"/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"nav\":[{\"text\":\"Home\",\"link\":\"/\"},{\"text\":\"Examples\",\"link\":\"/markdown-examples\"}],\"sidebar\":[{\"text\":\"Guide\",\"items\":[{\"text\":\"Guide\",\"link\":\"/guide\"},{\"text\":\"Runtime API Examples\",\"link\":\"/api-examples\"}]}],\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/clice-project/clice\"}],\"outline\":\"deep\"},\"locales\":{\"root\":{\"label\":\"English\"},\"zh\":{\"label\":\"简体中文\"}},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
<script>window.__VP_HASH_MAP__=JSON.parse("{\"design_architecture.md\":\"C7gHe7F3\",\"design_clangd.md\":\"Bf0uxymm\",\"design_dependent-name.md\":\"CV61gbuX\",\"design_design.md\":\"C2BgqDzh\",\"design_index.md\":\"DRSC8Xmj\",\"design_markdown-examples.md\":\"CpB9tZ0M\",\"design_protocol.md\":\"DF8r9ZnS\",\"index.md\":\"9zIdimQ1\",\"zh_design_architecture.md\":\"CWdgG2wH\",\"zh_design_compilation.md\":\"DfE77o6C\",\"zh_design_header-context.md\":\"BEaf4C-z\",\"zh_design_index.md\":\"DHNbht8F\",\"zh_design_template-resolver.md\":\"DNGBj6oC\",\"zh_dev_build.md\":\"D0ygseBD\",\"zh_dev_contribution.md\":\"CtDPz8pA\",\"zh_guide_configuration.md\":\"C92jpGuF\",\"zh_guide_quick-start.md\":\"CcQPc5x5\",\"zh_guide_roadmap.md\":\"BIO2ru79\",\"zh_guide_what-is-clice.md\":\"C7OJIBOU\",\"zh_index.md\":\"CVx52Udt\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"clice\",\"description\":\"a powerful and modern C++ language server\",\"base\":\"/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"nav\":[{\"text\":\"Home\",\"link\":\"/\"},{\"text\":\"Examples\",\"link\":\"/markdown-examples\"}],\"sidebar\":[{\"text\":\"Guide\",\"items\":[{\"text\":\"Guide\",\"link\":\"/guide\"},{\"text\":\"Runtime API Examples\",\"link\":\"/api-examples\"}]}],\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/clice-project/clice\"}],\"outline\":\"deep\"},\"locales\":{\"root\":{\"label\":\"English\"},\"zh\":{\"label\":\"简体中文\"}},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
</body>
</html>

View File

@@ -55,7 +55,7 @@
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> constexpr</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> inline</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> static</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> std</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">::string_view PlainText </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;plaintext&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> constexpr</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> inline</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> static</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> std</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">::string_view Markdown </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;markdown&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">};</span></span></code></pre></div></div></div></main><footer class="VPDocFooter" data-v-e6f2a212 data-v-1bcd8184><!--[--><!--]--><!----><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-1bcd8184><span class="visually-hidden" id="doc-footer-aria-label" data-v-1bcd8184>Pager</span><div class="pager" data-v-1bcd8184><!----></div><div class="pager" data-v-1bcd8184><a class="VPLink link pager-link next" href="/guide.html" data-v-1bcd8184><!--[--><span class="desc" data-v-1bcd8184>Next page</span><span class="title" data-v-1bcd8184>Guide</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><!----><!--[--><!--]--></div></div>
<script>window.__VP_HASH_MAP__=JSON.parse("{\"build.md\":\"Co74jVci\",\"configuration.md\":\"CpRedDOQ\",\"contribution.md\":\"Zb0EHW2I\",\"design_architecture.md\":\"C7gHe7F3\",\"design_clangd.md\":\"Bf0uxymm\",\"design_dependent-name.md\":\"CV61gbuX\",\"design_design.md\":\"C2BgqDzh\",\"design_index.md\":\"DRSC8Xmj\",\"design_markdown-examples.md\":\"CpB9tZ0M\",\"design_protocol.md\":\"DF8r9ZnS\",\"feature_document-symbol.md\":\"DsqxMq4k\",\"feature_folding-range.md\":\"2DTooAm1\",\"feature_inlay-hint.md\":\"D7ZN-35G\",\"feature_semantic-tokens.md\":\"B5B0Hwzv\",\"guide_quick-start.md\":\"CwDrTxXo\",\"index.md\":\"9zIdimQ1\",\"zh_design_compilation-task.md\":\"CRasWF8z\",\"zh_design_header-context.md\":\"JzQT9F1p\",\"zh_design_template-resolver.md\":\"fGt2KNxS\",\"zh_development_build.md\":\"DQ0u_rdw\",\"zh_development_contribution.md\":\"VhnPZehF\",\"zh_guide_quick-start.md\":\"DMOksTiB\",\"zh_guide_roadmap.md\":\"BIO2ru79\",\"zh_guide_what-is-clice.md\":\"C7OJIBOU\",\"zh_index.md\":\"CVx52Udt\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"clice\",\"description\":\"a powerful and modern C++ language server\",\"base\":\"/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"nav\":[{\"text\":\"Home\",\"link\":\"/\"},{\"text\":\"Examples\",\"link\":\"/markdown-examples\"}],\"sidebar\":[{\"text\":\"Guide\",\"items\":[{\"text\":\"Guide\",\"link\":\"/guide\"},{\"text\":\"Runtime API Examples\",\"link\":\"/api-examples\"}]}],\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/clice-project/clice\"}],\"outline\":\"deep\"},\"locales\":{\"root\":{\"label\":\"English\"},\"zh\":{\"label\":\"简体中文\"}},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
<script>window.__VP_HASH_MAP__=JSON.parse("{\"design_architecture.md\":\"C7gHe7F3\",\"design_clangd.md\":\"Bf0uxymm\",\"design_dependent-name.md\":\"CV61gbuX\",\"design_design.md\":\"C2BgqDzh\",\"design_index.md\":\"DRSC8Xmj\",\"design_markdown-examples.md\":\"CpB9tZ0M\",\"design_protocol.md\":\"DF8r9ZnS\",\"index.md\":\"9zIdimQ1\",\"zh_design_architecture.md\":\"CWdgG2wH\",\"zh_design_compilation.md\":\"DfE77o6C\",\"zh_design_header-context.md\":\"BEaf4C-z\",\"zh_design_index.md\":\"DHNbht8F\",\"zh_design_template-resolver.md\":\"DNGBj6oC\",\"zh_dev_build.md\":\"D0ygseBD\",\"zh_dev_contribution.md\":\"CtDPz8pA\",\"zh_guide_configuration.md\":\"C92jpGuF\",\"zh_guide_quick-start.md\":\"CcQPc5x5\",\"zh_guide_roadmap.md\":\"BIO2ru79\",\"zh_guide_what-is-clice.md\":\"C7OJIBOU\",\"zh_index.md\":\"CVx52Udt\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"clice\",\"description\":\"a powerful and modern C++ language server\",\"base\":\"/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"nav\":[{\"text\":\"Home\",\"link\":\"/\"},{\"text\":\"Examples\",\"link\":\"/markdown-examples\"}],\"sidebar\":[{\"text\":\"Guide\",\"items\":[{\"text\":\"Guide\",\"link\":\"/guide\"},{\"text\":\"Runtime API Examples\",\"link\":\"/api-examples\"}]}],\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/clice-project/clice\"}],\"outline\":\"deep\"},\"locales\":{\"root\":{\"label\":\"English\"},\"zh\":{\"label\":\"简体中文\"}},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
</body>
</html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
{"build.md":"Co74jVci","configuration.md":"CpRedDOQ","contribution.md":"Zb0EHW2I","design_architecture.md":"C7gHe7F3","design_clangd.md":"Bf0uxymm","design_dependent-name.md":"CV61gbuX","design_design.md":"C2BgqDzh","design_index.md":"DRSC8Xmj","design_markdown-examples.md":"CpB9tZ0M","design_protocol.md":"DF8r9ZnS","feature_document-symbol.md":"DsqxMq4k","feature_folding-range.md":"2DTooAm1","feature_inlay-hint.md":"D7ZN-35G","feature_semantic-tokens.md":"B5B0Hwzv","guide_quick-start.md":"CwDrTxXo","index.md":"9zIdimQ1","zh_design_compilation-task.md":"CRasWF8z","zh_design_header-context.md":"JzQT9F1p","zh_design_template-resolver.md":"fGt2KNxS","zh_development_build.md":"DQ0u_rdw","zh_development_contribution.md":"VhnPZehF","zh_guide_quick-start.md":"DMOksTiB","zh_guide_roadmap.md":"BIO2ru79","zh_guide_what-is-clice.md":"C7OJIBOU","zh_index.md":"CVx52Udt"}
{"design_architecture.md":"C7gHe7F3","design_clangd.md":"Bf0uxymm","design_dependent-name.md":"CV61gbuX","design_design.md":"C2BgqDzh","design_index.md":"DRSC8Xmj","design_markdown-examples.md":"CpB9tZ0M","design_protocol.md":"DF8r9ZnS","index.md":"9zIdimQ1","zh_design_architecture.md":"CWdgG2wH","zh_design_compilation.md":"DfE77o6C","zh_design_header-context.md":"BEaf4C-z","zh_design_index.md":"DHNbht8F","zh_design_template-resolver.md":"DNGBj6oC","zh_dev_build.md":"D0ygseBD","zh_dev_contribution.md":"CtDPz8pA","zh_guide_configuration.md":"C92jpGuF","zh_guide_quick-start.md":"CcQPc5x5","zh_guide_roadmap.md":"BIO2ru79","zh_guide_what-is-clice.md":"C7OJIBOU","zh_index.md":"CVx52Udt"}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

25
zh/design/index.html Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

25
zh/dev/contribution.html Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long