Merge pull request #6734 from roc-lang/narrow-lsp-report

Narrower reports from language server
This commit is contained in:
Anton-4 2024-05-10 14:17:56 +02:00 committed by GitHub
commit 3c189f4e36
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 22 additions and 11 deletions

View File

@ -11,8 +11,6 @@ jobs:
name: test zig, rust, wasm...
runs-on: [self-hosted, i7-6700K]
timeout-minutes: 90
env:
RUSTC_WRAPPER: /home/big-ci-user/.cargo/bin/sccache
steps:
- uses: actions/checkout@v4
@ -39,7 +37,7 @@ jobs:
- name: regular rust tests
# see #5904 for skipped test
run: cargo test --locked --release -- --skip cli_run::expects_dev_and_test && sccache --show-stats
run: cargo test --locked --release -- --skip cli_run::expects_dev_and_test
- name: tests examples in docs
run: cargo test --doc --release
@ -48,19 +46,19 @@ jobs:
run: cd examples/platform-switching/rust-platform && LD_LIBRARY_PATH=. cargo test --release --locked
- name: test the dev backend # these tests require an explicit feature flag
run: cargo test --locked --release --package test_gen --no-default-features --features gen-dev && sccache --show-stats
run: cargo test --locked --release --package test_gen --no-default-features --features gen-dev
- name: test gen-wasm single threaded # gen-wasm has some multithreading problems to do with the wasmer runtime
run: cargo test --locked --release --package test_gen --no-default-features --features gen-wasm -- --test-threads=1 && sccache --show-stats
run: cargo test --locked --release --package test_gen --no-default-features --features gen-wasm -- --test-threads=1
- name: roc test all builtins
run: ./ci/roc_test_builtins.sh
- name: wasm repl test
run: crates/repl_test/test_wasm.sh && sccache --show-stats
run: crates/repl_test/test_wasm.sh
- name: test building wasm repl
run: ./ci/www-repl.sh && sccache --show-stats
run: ./ci/www-repl.sh
#TODO i386 (32-bit linux) cli tests
#TODO verify-no-git-changes

View File

@ -112,7 +112,7 @@ pub(crate) fn global_analysis(doc_info: DocInfo) -> Vec<AnalyzedDocument> {
src_dir,
roc_target::Target::LinuxX64,
roc_load::FunctionKind::LambdaSet,
roc_reporting::report::RenderTarget::Generic,
roc_reporting::report::RenderTarget::LanguageServer,
RocCacheDir::Persistent(cache::roc_cache_dir().as_path()),
roc_reporting::report::DEFAULT_PALETTE,
);

View File

@ -202,9 +202,8 @@ pub(crate) mod diag {
);
let severity = report.severity.into_lsp_severity();
let mut msg = String::new();
report.render_ci(&mut msg, fmt.alloc);
report.render_language_server(&mut msg, fmt.alloc);
Some(Diagnostic {
range,
@ -239,7 +238,7 @@ pub(crate) mod diag {
let severity = report.severity.into_lsp_severity();
let mut msg = String::new();
report.render_ci(&mut msg, fmt.alloc);
report.render_language_server(&mut msg, fmt.alloc);
Some(Diagnostic {
range,

View File

@ -112,6 +112,7 @@ pub fn pretty_header_with_path(title: &str, path: &Path) -> String {
pub enum RenderTarget {
ColorTerminal,
Generic,
LanguageServer,
}
/// A textual report.
@ -133,6 +134,7 @@ impl<'b> Report<'b> {
match target {
RenderTarget::Generic => self.render_ci(buf, alloc),
RenderTarget::ColorTerminal => self.render_color_terminal(buf, alloc, palette),
RenderTarget::LanguageServer => self.render_language_server(buf, alloc),
}
}
@ -176,6 +178,18 @@ impl<'b> Report<'b> {
}
}
/// Render report for the language server, where the window is narrower.
/// Path is not included, and the header is not emphasized with "─".
pub fn render_language_server(self, buf: &mut String, alloc: &'b RocDocAllocator<'b>) {
let err_msg = "<buffer is not a utf-8 encoded string>";
alloc
.stack([alloc.text(self.title), self.doc])
.1
.render_raw(60, &mut CiWrite::new(buf))
.expect(err_msg)
}
pub fn horizontal_rule(palette: &'b Palette) -> String {
format!("{}{}", palette.header, "".repeat(80))
}