Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
ebdeb59
feat: defer PCH rebuild when preamble is incomplete
16bit-ykiko Apr 5, 2026
ffd7016
feat: extend preamble completeness check to C++20 module statements
16bit-ykiko Apr 5, 2026
17e7c91
feat: #include/import completion + buffer-aware module deps
16bit-ykiko Apr 5, 2026
d78b54a
fix: review fixes — #import misclassification, word boundary check
16bit-ykiko Apr 5, 2026
0c76b3e
test: add preamble completeness unit tests and include completion int…
16bit-ykiko Apr 5, 2026
2844ac9
test: add import completion and buffer-aware module deps integration …
16bit-ykiko Apr 5, 2026
dcef64c
fix: crash in CompilationUnit::deps when FileEntryRef is invalid
16bit-ykiko Apr 5, 2026
4f51db5
chore: default 3 SL + 2 SF workers, stop piping worker logs to master
16bit-ykiko Apr 5, 2026
088d7db
test: add preamble edit integration tests
16bit-ykiko Apr 5, 2026
79a1892
debug: add request tracing logs, preamble edit integration tests
16bit-ykiko Apr 5, 2026
0d6d813
fix: ignore SIGPIPE, lighten preamble edit test for CI
16bit-ykiko Apr 5, 2026
0b3b6fd
fix: remove SIGPIPE ignore, restore real #include in preamble edit test
16bit-ykiko Apr 5, 2026
21f82d4
fix: prevent compile request flooding on rapid edits
16bit-ykiko Apr 5, 2026
0fea91b
fix: prevent compile request flooding on rapid edits
16bit-ykiko Apr 6, 2026
8d66f78
chore: add rapid_edit smoke test, document timeout removal
16bit-ykiko Apr 6, 2026
0deea1e
fix: use project-local header in preamble edit test for CI stability
16bit-ykiko Apr 6, 2026
188bd00
fix: add word boundary checks for import/export detection, strengthen…
16bit-ykiko Apr 6, 2026
4f5a8f1
fix: autocorrect Chinese punctuation spacing in extension.md
16bit-ykiko Apr 6, 2026
20c1d0c
fix: ignore SIGPIPE on POSIX to prevent crash on client disconnect
16bit-ykiko Apr 6, 2026
c749840
style: fix clang-format line break in export boundary check
16bit-ykiko Apr 6, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/zh/dev/extension.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ pixi run publish-vscode

1. `pixi shell -e node`
2. 在 `editors/vscode` 下运行 `pnpm run watch`(增量构建)
3. VSCode 中使用Run Extension/Launch Extension” 调试配置,或执行 `code --extensionDevelopmentPath=$(pwd)/editors/vscode`
3. VSCode 中使用Run Extension/Launch Extension”调试配置,或执行 `code --extensionDevelopmentPath=$(pwd)/editors/vscode`

常用脚本(在 `pixi shell -e node` 下):

Expand Down
8 changes: 8 additions & 0 deletions src/clice.cc
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#include <csignal>
#include <cstdint>
#include <iostream>
#include <print>
Expand Down Expand Up @@ -64,6 +65,13 @@ struct Options {
} // namespace clice

int main(int argc, const char** argv) {
#ifndef _WIN32
// On POSIX systems, ignore SIGPIPE so that writing to a closed pipe
// (e.g. when the LSP client disconnects) returns EPIPE instead of
// killing the process. This is standard practice for pipe-based servers.
signal(SIGPIPE, SIG_IGN);
#endif

auto args = deco::util::argvify(argc, argv);
auto result = deco::cli::parse<clice::Options>(args);

Expand Down
14 changes: 11 additions & 3 deletions src/compile/compilation_unit.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,9 @@ auto CompilationUnitRef::file_path(clang::FileID fid) -> llvm::StringRef {
}

auto entry = self->SM().getFileEntryRefForID(fid);
assert(entry && "Invalid file entry");
if(!entry) {
return {};
}

llvm::SmallString<128> path;

Expand Down Expand Up @@ -242,13 +244,19 @@ std::vector<std::string> CompilationUnitRef::deps() {
for(auto& [fid, directive]: directives()) {
for(auto& include: directive.includes) {
if(!include.skipped) {
deps.try_emplace(file_path(include.fid));
auto path = file_path(include.fid);
if(!path.empty()) {
deps.try_emplace(path);
}
}
}

for(auto& has_include: directive.has_includes) {
if(has_include.fid.isValid()) {
deps.try_emplace(file_path(has_include.fid));
auto path = file_path(has_include.fid);
if(!path.empty()) {
deps.try_emplace(path);
}
}
}
}
Expand Down
4 changes: 2 additions & 2 deletions src/server/config.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,10 @@ void CliceConfig::apply_defaults(const std::string& workspace_root) {
cpu_count = 4;

if(stateful_worker_count == 0) {
stateful_worker_count = std::max(1u, cpu_count / 4);
stateful_worker_count = 2;
}
if(stateless_worker_count == 0) {
stateless_worker_count = std::max(1u, cpu_count / 4);
stateless_worker_count = 3;
}
if(worker_memory_limit == 0) {
worker_memory_limit = 4ULL * 1024 * 1024 * 1024; // 4GB default
Expand Down
Loading
Loading