Skip to content

Commit ea594c4

Browse files
committed
Use char for trigger character
1 parent 9ceaff9 commit ea594c4

File tree

6 files changed

+16
-15
lines changed

6 files changed

+16
-15
lines changed

crates/ide-completion/src/lib.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -143,15 +143,15 @@ pub fn completions(
143143
db: &RootDatabase,
144144
config: &CompletionConfig,
145145
position: FilePosition,
146-
trigger_character: Option<&str>,
146+
trigger_character: Option<char>,
147147
) -> Option<Completions> {
148148
let ctx = &CompletionContext::new(db, position, config)?;
149149
let mut acc = Completions::default();
150150

151151
{
152152
let acc = &mut acc;
153153
// prevent `(` from triggering unwanted completion noise
154-
if trigger_character != Some("(") {
154+
if trigger_character != Some('(') {
155155
completions::attribute::complete_attribute(acc, ctx);
156156
completions::attribute::complete_derive(acc, ctx);
157157
completions::attribute::complete_known_attribute_input(acc, ctx);

crates/ide-completion/src/tests.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ pub(crate) fn completion_list_no_kw(ra_fixture: &str) -> String {
8888

8989
pub(crate) fn completion_list_with_trigger_character(
9090
ra_fixture: &str,
91-
trigger_character: Option<&str>,
91+
trigger_character: Option<char>,
9292
) -> String {
9393
completion_list_with_config(TEST_CONFIG, ra_fixture, true, trigger_character)
9494
}
@@ -97,7 +97,7 @@ fn completion_list_with_config(
9797
config: CompletionConfig,
9898
ra_fixture: &str,
9999
include_keywords: bool,
100-
trigger_character: Option<&str>,
100+
trigger_character: Option<char>,
101101
) -> String {
102102
// filter out all but one builtintype completion for smaller test outputs
103103
let items = get_all_items(config, ra_fixture, trigger_character);
@@ -225,7 +225,7 @@ pub(crate) fn check_pattern_is_applicable(code: &str, check: impl FnOnce(SyntaxE
225225
pub(crate) fn get_all_items(
226226
config: CompletionConfig,
227227
code: &str,
228-
trigger_character: Option<&str>,
228+
trigger_character: Option<char>,
229229
) -> Vec<CompletionItem> {
230230
let (db, position) = position(code);
231231
let res = crate::completions(&db, &config, position, trigger_character)

crates/ide-completion/src/tests/fn_param.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ fn check(ra_fixture: &str, expect: Expect) {
77
expect.assert_eq(&actual);
88
}
99

10-
fn check_with_trigger_character(ra_fixture: &str, trigger_character: Option<&str>, expect: Expect) {
11-
let actual = completion_list_with_trigger_character(ra_fixture, trigger_character);
10+
fn check_with_trigger_character(ra_fixture: &str, trigger_character: char, expect: Expect) {
11+
let actual = completion_list_with_trigger_character(ra_fixture, Some(trigger_character));
1212
expect.assert_eq(&actual)
1313
}
1414

@@ -124,7 +124,7 @@ fn trigger_by_l_paren() {
124124
r#"
125125
fn foo($0)
126126
"#,
127-
Some("("),
127+
'(',
128128
expect![[]],
129129
)
130130
}

crates/ide-completion/src/tests/visibility.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ fn check(ra_fixture: &str, expect: Expect) {
88
expect.assert_eq(&actual)
99
}
1010

11-
fn check_with_trigger_character(ra_fixture: &str, trigger_character: Option<&str>, expect: Expect) {
12-
let actual = completion_list_with_trigger_character(ra_fixture, trigger_character);
11+
fn check_with_trigger_character(ra_fixture: &str, trigger_character: char, expect: Expect) {
12+
let actual = completion_list_with_trigger_character(ra_fixture, Some(trigger_character));
1313
expect.assert_eq(&actual)
1414
}
1515

@@ -20,7 +20,7 @@ fn empty_pub() {
2020
r#"
2121
pub($0)
2222
"#,
23-
Some("("),
23+
'(',
2424
expect![[r#"
2525
kw crate
2626
kw in

crates/ide/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -548,7 +548,7 @@ impl Analysis {
548548
&self,
549549
config: &CompletionConfig,
550550
position: FilePosition,
551-
trigger_character: Option<&str>,
551+
trigger_character: Option<char>,
552552
) -> Cancellable<Option<Vec<CompletionItem>>> {
553553
self.with_db(|db| {
554554
ide_completion::completions(db, config, position, trigger_character).map(Into::into)

crates/rust-analyzer/src/handlers.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -796,9 +796,10 @@ pub(crate) fn handle_completion(
796796
let _p = profile::span("handle_completion");
797797
let text_document_position = params.text_document_position.clone();
798798
let position = from_proto::file_position(&snap, params.text_document_position)?;
799-
let completion_trigger_character = params.context.and_then(|ctx| ctx.trigger_character);
799+
let completion_trigger_character =
800+
params.context.and_then(|ctx| ctx.trigger_character).and_then(|s| s.chars().next());
800801

801-
if Some(":") == completion_trigger_character.as_deref() {
802+
if Some(':') == completion_trigger_character {
802803
let source_file = snap.analysis.parse(position.file_id)?;
803804
let left_token = source_file.syntax().token_at_offset(position.offset).left_biased();
804805
let completion_triggered_after_single_colon = match left_token {
@@ -814,7 +815,7 @@ pub(crate) fn handle_completion(
814815
let items = match snap.analysis.completions(
815816
completion_config,
816817
position,
817-
completion_trigger_character.as_deref(),
818+
completion_trigger_character,
818819
)? {
819820
None => return Ok(None),
820821
Some(items) => items,

0 commit comments

Comments
 (0)