ide_completion/completions/
field.rs

1//! Completion of field list position.
2
3use crate::{
4    CompletionContext, Completions,
5    context::{PathCompletionCtx, Qualified},
6};
7
8pub(crate) fn complete_field_list_tuple_variant(
9    acc: &mut Completions,
10    ctx: &CompletionContext<'_>,
11    path_ctx: &PathCompletionCtx<'_>,
12) {
13    if ctx.qualifier_ctx.vis_node.is_some() {
14    } else if let PathCompletionCtx {
15        has_macro_bang: false,
16        qualified: Qualified::No,
17        parent: None,
18        has_type_args: false,
19        ..
20    } = path_ctx
21    {
22        let mut add_keyword = |kw, snippet| acc.add_keyword_snippet(ctx, kw, snippet);
23        add_keyword("pub(crate)", "pub(crate) $0");
24        add_keyword("pub(super)", "pub(super) $0");
25        add_keyword("pub", "pub $0");
26    }
27}
28
29pub(crate) fn complete_field_list_record_variant(
30    acc: &mut Completions,
31    ctx: &CompletionContext<'_>,
32) {
33    if ctx.qualifier_ctx.vis_node.is_none() {
34        let mut add_keyword = |kw, snippet| acc.add_keyword_snippet(ctx, kw, snippet);
35        add_keyword("pub(crate)", "pub(crate) $0");
36        add_keyword("pub(super)", "pub(super) $0");
37        add_keyword("pub", "pub $0");
38    }
39}