umple-lsp-server 0.2.0 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/completions.scm +21 -6
  2. package/definitions.scm +4 -0
  3. package/out/completionAnalysis.d.ts +44 -0
  4. package/out/completionAnalysis.js +391 -0
  5. package/out/completionAnalysis.js.map +1 -0
  6. package/out/completionBuilder.d.ts +28 -0
  7. package/out/completionBuilder.js +251 -0
  8. package/out/completionBuilder.js.map +1 -0
  9. package/out/documentSymbolBuilder.d.ts +13 -0
  10. package/out/documentSymbolBuilder.js +95 -0
  11. package/out/documentSymbolBuilder.js.map +1 -0
  12. package/out/formatter.d.ts +31 -0
  13. package/out/formatter.js +96 -0
  14. package/out/formatter.js.map +1 -0
  15. package/out/hoverBuilder.d.ts +21 -0
  16. package/out/hoverBuilder.js +308 -0
  17. package/out/hoverBuilder.js.map +1 -0
  18. package/out/importGraph.d.ts +28 -0
  19. package/out/importGraph.js +91 -0
  20. package/out/importGraph.js.map +1 -0
  21. package/out/referenceSearch.d.ts +22 -0
  22. package/out/referenceSearch.js +271 -0
  23. package/out/referenceSearch.js.map +1 -0
  24. package/out/resolver.d.ts +21 -0
  25. package/out/resolver.js +174 -0
  26. package/out/resolver.js.map +1 -0
  27. package/out/server.js +350 -328
  28. package/out/server.js.map +1 -1
  29. package/out/symbolIndex.d.ts +86 -94
  30. package/out/symbolIndex.js +357 -399
  31. package/out/symbolIndex.js.map +1 -1
  32. package/out/symbolTypes.d.ts +34 -0
  33. package/out/symbolTypes.js +9 -0
  34. package/out/symbolTypes.js.map +1 -0
  35. package/out/tokenAnalysis.d.ts +24 -0
  36. package/out/tokenAnalysis.js +195 -0
  37. package/out/tokenAnalysis.js.map +1 -0
  38. package/out/tokenTypes.d.ts +46 -0
  39. package/out/tokenTypes.js +28 -0
  40. package/out/tokenTypes.js.map +1 -0
  41. package/out/treeUtils.d.ts +32 -0
  42. package/out/treeUtils.js +89 -0
  43. package/out/treeUtils.js.map +1 -0
  44. package/package.json +4 -2
  45. package/references.scm +78 -10
  46. package/tree-sitter-umple.wasm +0 -0
package/references.scm CHANGED
@@ -18,17 +18,35 @@
18
18
  (interface_definition name: (identifier) @reference.interface)
19
19
  (trait_definition name: (identifier) @reference.trait)
20
20
  (enum_definition name: (identifier) @reference.enum)
21
+
22
+ ; =====================
23
+ ; TRAIT PARAMETER REFERENCES
24
+ ; =====================
25
+ ; Constraint interfaces in <TP isA I1 & I2> — must be interfaces
26
+ (trait_parameter_constraint (qualified_name (identifier) @reference.interface))
27
+ ; Default types in <TP = DefaultClass> — can be any named type
28
+ (trait_parameter default: (qualified_name (identifier) @reference.class_interface_trait))
29
+ ; Binding values in isA T<TP = C1> — can be any named type
30
+ (trait_binding value: (qualified_name (identifier) @reference.class_interface_trait))
31
+ ; Trait SM binding: isA T<sm1 as sm.s2>
32
+ ; param references trait-side statemachine; value path references class-side SM/state
33
+ (trait_sm_binding param: (identifier) @reference.statemachine)
34
+ (trait_sm_binding value: (qualified_name (identifier) @reference.statemachine_state))
35
+ (enum_value name: (identifier) @reference.enum_value)
36
+ (external_definition name: (identifier) @reference.class)
21
37
  (mixset_definition name: (identifier) @reference.mixset)
22
38
  (requirement_definition name: (identifier) @reference.requirement)
23
39
  (association_class_definition name: (identifier) @reference.class)
24
40
  (statemachine_definition name: (identifier) @reference.statemachine)
25
41
  (state_machine name: (identifier) @reference.statemachine)
26
- (referenced_statemachine name: (identifier) @reference.statemachine)
27
42
  (referenced_statemachine definition: (identifier) @reference.statemachine)
28
43
  (state name: (identifier) @reference.state)
29
44
  (association_definition name: (identifier) @reference.association)
30
45
  (attribute_declaration name: (identifier) @reference.attribute)
46
+ (const_declaration name: (identifier) @reference.const)
31
47
  (method_declaration name: (identifier) @reference.method)
48
+ (method_signature name: (identifier) @reference.method)
49
+ (trait_method_signature name: (identifier) @reference.method)
32
50
 
33
51
  ; =====================
34
52
  ; TYPE REFERENCES
@@ -37,6 +55,21 @@
37
55
 
38
56
  (type_name (qualified_name (identifier) @reference.class_interface_trait_enum))
39
57
 
58
+ ; =====================
59
+ ; ATTRIBUTE/CONST DEFAULT VALUE REFERENCES
60
+ ; =====================
61
+ ; Default values can reference attributes, consts, or enum values
62
+ ; (qualified_name directly under attribute/const_declaration is the value position,
63
+ ; not the type (which is inside type_name) or the name (which is a field identifier))
64
+
65
+ ; Non-final segment (qualifier): "Status" in "Status.ACTIVE" → enum reference
66
+ (attribute_declaration (qualified_name (identifier) @reference.enum . (identifier)))
67
+ (const_declaration (qualified_name (identifier) @reference.enum . (identifier)))
68
+
69
+ ; Final or only segment: "ACTIVE" in "Status.ACTIVE", or "MAX" in "x = MAX" → value reference
70
+ (attribute_declaration (qualified_name (identifier) @reference.attribute_const_enum_value .))
71
+ (const_declaration (qualified_name (identifier) @reference.attribute_const_enum_value .))
72
+
40
73
  ; =====================
41
74
  ; ISA (INHERITANCE)
42
75
  ; =====================
@@ -59,21 +92,32 @@
59
92
 
60
93
  (req_implementation (identifier) @reference.requirement)
61
94
 
95
+ ; =====================
96
+ ; TOP-LEVEL CODE INJECTION
97
+ ; =====================
98
+ ; before/after/around { ClassName } — target must be a class
99
+ (toplevel_code_injection target: (identifier) @reference.class)
100
+ ; before/after/around { ClassName } operation() — method reference
101
+ (toplevel_code_injection operation: (identifier) @reference.method)
102
+
103
+ ; before/after method hook — method name reference
104
+ (before_after (identifier) @reference.method)
105
+
62
106
  ; =====================
63
107
  ; ASSOCIATION TYPE REFERENCES
64
108
  ; =====================
65
- ; Types in associations can only be classes
109
+ ; Types in associations can be classes, interfaces, or traits
66
110
 
67
- (association_inline right_type: (identifier) @reference.class)
68
- (association_member left_type: (identifier) @reference.class)
69
- (association_member right_type: (identifier) @reference.class)
70
- (single_association_end type: (identifier) @reference.class)
111
+ (association_inline right_type: (identifier) @reference.class_interface_trait)
112
+ (association_member left_type: (identifier) @reference.class_interface_trait)
113
+ (association_member right_type: (identifier) @reference.class_interface_trait)
114
+ (single_association_end type: (identifier) @reference.class_interface_trait)
71
115
 
72
116
  ; =====================
73
117
  ; STATE REFERENCES
74
118
  ; =====================
75
119
 
76
- (transition target: (identifier) @reference.state)
120
+ (transition target: (qualified_name (identifier) @reference.state))
77
121
  (standalone_transition from_state: (identifier) @reference.state)
78
122
  (standalone_transition to_state: (identifier) @reference.state)
79
123
 
@@ -85,11 +129,25 @@
85
129
  (key_definition (identifier) @reference.attribute)
86
130
 
87
131
  ; =====================
88
- ; CONSTRAINT IDENTIFIERS
132
+ ; CONSTRAINT & GUARD IDENTIFIERS
89
133
  ; =====================
90
- ; Identifiers inside constraints reference attributes
134
+ ; Identifiers inside constraints/guards reference attributes or constants
91
135
 
92
- (constraint (identifier) @reference.attribute)
136
+ (constraint (identifier) @reference.attribute_const_enum_value)
137
+ (guard (identifier) @reference.attribute_const_enum_value_method)
138
+
139
+ ; =====================
140
+ ; TRACE ENTITY REFERENCES
141
+ ; =====================
142
+ ; "trace count;" — identifier after "trace" keyword references attribute or method
143
+ ; Uses anonymous node anchor to skip tracecase/activate/deactivate identifiers
144
+ (trace_statement "trace" . (identifier) @reference.attribute_method)
145
+ ; "record x" in trace postfix — additional entity reference
146
+ (trace_postfix "record" . (identifier) @reference.attribute_method)
147
+ ; tracecase definition name and activate/deactivate references
148
+ (trace_statement name: (identifier) @reference.tracecase)
149
+ (trace_statement "activate" . (identifier) @reference.tracecase)
150
+ (trace_statement "deactivate" . (identifier) @reference.tracecase)
93
151
 
94
152
  ; =====================
95
153
  ; EMIT METHOD & TEMPLATE
@@ -97,3 +155,13 @@
97
155
  (emit_method name: (identifier) @reference.method)
98
156
  (template_attribute name: (identifier) @reference.template)
99
157
  (template_list template_name: (identifier) @reference.template)
158
+
159
+ ; =====================
160
+ ; FILTER VALUE CLASS REFERENCES
161
+ ; =====================
162
+ ; include ClassName; — plain names (no wildcards) reference classes.
163
+ ; Wildcard/exclusion patterns (Conn*, ~Foo, ?) are skipped via the
164
+ ; match predicate: only tokens that look like plain identifiers qualify.
165
+ (filter_value
166
+ (filter_pattern) @reference.class
167
+ (#match? @reference.class "^[A-Za-z_][A-Za-z0-9_]*$"))
Binary file