add a feature flag to disable printlns in kcl-lib for the lsp (#2712)
* updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * cleanup weird printlns Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * check Signed-off-by: Jess Frazelle <github@jessfraz.com> * rename file Signed-off-by: Jess Frazelle <github@jessfraz.com> --------- Signed-off-by: Jess Frazelle <github@jessfraz.com>
This commit is contained in:
40
.github/workflows/cargo-check.yml
vendored
Normal file
40
.github/workflows/cargo-check.yml
vendored
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
paths:
|
||||||
|
- '**/Cargo.toml'
|
||||||
|
- '**/Cargo.lock'
|
||||||
|
- '**/rust-toolchain.toml'
|
||||||
|
- '**.rs'
|
||||||
|
- .github/workflows/cargo-check.yml
|
||||||
|
pull_request:
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
name: cargo check
|
||||||
|
jobs:
|
||||||
|
cargocheck:
|
||||||
|
name: cargo check
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
dir: ['src/wasm-lib']
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- name: Install latest rust
|
||||||
|
uses: actions-rs/toolchain@v1
|
||||||
|
with:
|
||||||
|
toolchain: stable
|
||||||
|
override: true
|
||||||
|
|
||||||
|
- name: Rust Cache
|
||||||
|
uses: Swatinem/rust-cache@v2.6.1
|
||||||
|
|
||||||
|
- name: Run check
|
||||||
|
run: |
|
||||||
|
cd "${{ matrix.dir }}"
|
||||||
|
# We specifically want to test the disable-println feature
|
||||||
|
# Since it is not enabled by default, we need to specify it
|
||||||
|
# This is used in kcl-lsp
|
||||||
|
cargo check --all --features disable-println --features pyo3
|
||||||
2
.github/workflows/cargo-clippy.yml
vendored
2
.github/workflows/cargo-clippy.yml
vendored
@ -53,7 +53,7 @@ jobs:
|
|||||||
- name: Run clippy
|
- name: Run clippy
|
||||||
run: |
|
run: |
|
||||||
cd "${{ matrix.dir }}"
|
cd "${{ matrix.dir }}"
|
||||||
cargo clippy --all --tests --all-features --benches -- -D warnings
|
cargo clippy --all --tests --benches -- -D warnings
|
||||||
# If this fails, run "cargo check" to update Cargo.lock,
|
# If this fails, run "cargo check" to update Cargo.lock,
|
||||||
# then add Cargo.lock to the PR.
|
# then add Cargo.lock to the PR.
|
||||||
- name: Check Cargo.lock doesn't need updating
|
- name: Check Cargo.lock doesn't need updating
|
||||||
|
|||||||
@ -63,6 +63,9 @@ tower-lsp = { version = "0.20.0", features = ["proposed"] }
|
|||||||
[features]
|
[features]
|
||||||
default = ["cli", "engine"]
|
default = ["cli", "engine"]
|
||||||
cli = ["dep:clap"]
|
cli = ["dep:clap"]
|
||||||
|
# For the lsp server, when run with stdout for rpc we want to disable println.
|
||||||
|
# This is used for editor extensions that use the lsp server.
|
||||||
|
disable-println = []
|
||||||
engine = []
|
engine = []
|
||||||
pyo3 = ["dep:pyo3"]
|
pyo3 = ["dep:pyo3"]
|
||||||
|
|
||||||
|
|||||||
@ -180,11 +180,7 @@ impl EngineConnection {
|
|||||||
loop {
|
loop {
|
||||||
match tcp_read.read().await {
|
match tcp_read.read().await {
|
||||||
Ok(ws_resp) => {
|
Ok(ws_resp) => {
|
||||||
for e in ws_resp.errors.iter().flatten() {
|
|
||||||
println!("got error message: {} {}", e.error_code, e.message);
|
|
||||||
}
|
|
||||||
// If we got a batch response, add all the inner responses.
|
// If we got a batch response, add all the inner responses.
|
||||||
println!("got response: {:?}", ws_resp);
|
|
||||||
if let Some(kittycad::types::OkWebSocketResponseData::ModelingBatch { responses }) =
|
if let Some(kittycad::types::OkWebSocketResponseData::ModelingBatch { responses }) =
|
||||||
&ws_resp.resp
|
&ws_resp.resp
|
||||||
{
|
{
|
||||||
|
|||||||
@ -4,6 +4,13 @@
|
|||||||
//! the standard library implementation, a LSP implementation, generator for the docs, and more.
|
//! the standard library implementation, a LSP implementation, generator for the docs, and more.
|
||||||
#![recursion_limit = "1024"]
|
#![recursion_limit = "1024"]
|
||||||
|
|
||||||
|
macro_rules! println {
|
||||||
|
($($rest:tt)*) => {
|
||||||
|
#[cfg(not(feature = "disable-println"))]
|
||||||
|
std::println!($($rest)*)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
pub mod ast;
|
pub mod ast;
|
||||||
pub mod coredump;
|
pub mod coredump;
|
||||||
pub mod docs;
|
pub mod docs;
|
||||||
|
|||||||
@ -2907,7 +2907,10 @@ let myBox = box([0,0], -3, -16, -10)
|
|||||||
let tokens = crate::token::lexer(some_program_string).unwrap();
|
let tokens = crate::token::lexer(some_program_string).unwrap();
|
||||||
let parser = crate::parser::Parser::new(tokens);
|
let parser = crate::parser::Parser::new(tokens);
|
||||||
let err = parser.ast().unwrap_err();
|
let err = parser.ast().unwrap_err();
|
||||||
println!("{err}")
|
assert_eq!(
|
||||||
|
err.to_string(),
|
||||||
|
r#"syntax: KclErrorDetails { source_ranges: [SourceRange([30, 36])], message: "All expressions in a pipeline must use the % (substitution operator)" }"#
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user