aboutsummaryrefslogtreecommitdiff
path: root/helix-core/tests/indent.rs
diff options
context:
space:
mode:
authorkyfanc2024-02-13 10:58:53 +0000
committerGitHub2024-02-13 10:58:53 +0000
commitfe869e5dc7a8cd6c2c2e3945816bd890956eef3a (patch)
treead0b899b482df976caf3cc2f079dc7d0d8a3769f /helix-core/tests/indent.rs
parent7934ac77143e69068420556b043dde035255340b (diff)
fix lsp config reload (#9415)
`syn_loader` was replaced rather than interior value being replace, old value was still being referenced and not updated after `:config-refresh`. By using `ArcSwap` like for `config`, each `.load()` call will return the most updated value. Co-authored-by: kyfan <kyfan@email>
Diffstat (limited to 'helix-core/tests/indent.rs')
-rw-r--r--helix-core/tests/indent.rs10
1 files changed, 8 insertions, 2 deletions
diff --git a/helix-core/tests/indent.rs b/helix-core/tests/indent.rs
index de1434f7..53265e0b 100644
--- a/helix-core/tests/indent.rs
+++ b/helix-core/tests/indent.rs
@@ -1,10 +1,11 @@
+use arc_swap::ArcSwap;
use helix_core::{
indent::{indent_level_for_line, treesitter_indent_for_pos, IndentStyle},
syntax::{Configuration, Loader},
Syntax,
};
use ropey::Rope;
-use std::{ops::Range, path::PathBuf, process::Command};
+use std::{ops::Range, path::PathBuf, process::Command, sync::Arc};
#[test]
fn test_treesitter_indent_rust() {
@@ -197,7 +198,12 @@ fn test_treesitter_indent(
let indent_style = IndentStyle::from_str(&language_config.indent.as_ref().unwrap().unit);
let highlight_config = language_config.highlight_config(&[]).unwrap();
let text = doc.slice(..);
- let syntax = Syntax::new(text, highlight_config, std::sync::Arc::new(loader)).unwrap();
+ let syntax = Syntax::new(
+ text,
+ highlight_config,
+ Arc::new(ArcSwap::from_pointee(loader)),
+ )
+ .unwrap();
let indent_query = language_config.indent_query().unwrap();
for i in 0..doc.len_lines() {