Skip to main content

just_lsp/
lib.rs

1use {
2  indoc::indoc,
3  ropey::Rope,
4  serde::{Deserialize, Serialize},
5  std::{
6    collections::{HashMap, HashSet},
7    fmt::{self, Debug, Display, Formatter},
8    fs,
9    iter::{once, successors},
10    ops::{ControlFlow, RangeInclusive},
11    path::PathBuf,
12    sync::OnceLock,
13  },
14  tower_lsp::lsp_types as lsp,
15  tree_sitter::{InputEdit, Language, Node, Parser, Point, Tree, TreeCursor},
16};
17
18pub use {
19  alias::Alias,
20  analyzer::Analyzer,
21  attribute::Attribute,
22  attribute_kind::AttributeKind,
23  attribute_target::AttributeTarget,
24  builtin::Builtin,
25  builtins::BUILTINS,
26  config::{Config, RuleConfig, RuleLevel},
27  count::Count,
28  dependency::Dependency,
29  diagnostic::Diagnostic,
30  document::Document,
31  error::Error,
32  function::Function,
33  function_call::FunctionCall,
34  function_kind::FunctionKind,
35  group::Group,
36  import::Import,
37  module::Module,
38  node_ext::NodeExt,
39  parameter::{Parameter, ParameterJson, ParameterKind, VariadicType},
40  point_ext::PointExt,
41  position_ext::PositionExt,
42  quickfixer::Quickfixer,
43  range_ext::RangeExt,
44  recipe::Recipe,
45  rope_ext::{Edit, Position as RopePosition, RopeExt},
46  rule::Rule,
47  rule_context::RuleContext,
48  scope::Scope,
49  setting::Setting,
50  setting_kind::SettingKind,
51  str_ext::StrExt,
52  text_node::TextNode,
53  variable::Variable,
54};
55
56mod alias;
57mod analyzer;
58mod attribute;
59mod attribute_kind;
60mod attribute_target;
61mod builtin;
62mod builtins;
63mod config;
64mod count;
65mod dependency;
66mod diagnostic;
67mod document;
68mod error;
69mod function;
70mod function_call;
71mod function_kind;
72mod group;
73mod import;
74mod module;
75mod node_ext;
76mod parameter;
77mod point_ext;
78mod position_ext;
79mod quickfixer;
80mod range_ext;
81mod recipe;
82mod rope_ext;
83mod rule;
84mod rule_context;
85mod scope;
86mod setting;
87mod setting_kind;
88mod str_ext;
89mod text_node;
90mod variable;
91
92type Result<T = ()> = std::result::Result<T, Error>;
93
94// SAFETY: tree_sitter_just returns a static language definition.
95unsafe extern "C" {
96  pub fn tree_sitter_just() -> Language;
97}