Skip to content

Commit 7054ef7

Browse files
Migrated scala scope implementations (#2948)
1 parent 3ce6326 commit 7054ef7

File tree

4 files changed

+118
-95
lines changed

4 files changed

+118
-95
lines changed

packages/cursorless-engine/src/languages/LegacyLanguageId.ts

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,6 @@
22
* The language IDs that we have full tree-sitter support for using our legacy
33
* modifiers.
44
*/
5-
export const legacyLanguageIds = [
6-
"clojure",
7-
"latex",
8-
"ruby",
9-
"rust",
10-
"scala",
11-
] as const;
5+
export const legacyLanguageIds = ["clojure", "latex", "ruby", "rust"] as const;
126

137
export type LegacyLanguageId = (typeof legacyLanguageIds)[number];

packages/cursorless-engine/src/languages/getNodeMatcher.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ import type { LegacyLanguageId } from "./LegacyLanguageId";
1313
import latex from "./latex";
1414
import { patternMatchers as ruby } from "./ruby";
1515
import rust from "./rust";
16-
import scala from "./scala";
1716

1817
export function getNodeMatcher(
1918
languageId: string,
@@ -47,7 +46,6 @@ export const languageMatchers: Record<
4746
latex,
4847
ruby,
4948
rust,
50-
scala,
5149
};
5250

5351
function matcherIncludeSiblings(matcher: NodeMatcher): NodeMatcher {

packages/cursorless-engine/src/languages/scala.ts

Lines changed: 0 additions & 86 deletions
This file was deleted.

queries/scala.scm

Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,123 @@
5454
)
5555
) @_.domain
5656

57+
;;!! type Vector = (Int, Int)
58+
;;! ^^^^^^^^^^
59+
(type_definition
60+
name: (_) @_.leading.endOf
61+
type: (_) @value
62+
) @_.domain
63+
64+
;;!! class Example(foo: String = "foo") {}
65+
;;! ^^^^^
66+
(_
67+
(_) @_.leading.endOf
68+
.
69+
default_value: (_) @value
70+
) @_.domain
71+
72+
;;!! val bar = "bar"
73+
;;! ^^^^^
74+
(_
75+
(_) @_.leading.endOf
76+
.
77+
value: (_) @value
78+
) @_.domain
79+
80+
;;!! type Vector = (Int, Int)
81+
;;! ^^^^^^^^^^^^^^^^^^^^^^^^
82+
(type_definition) @type
83+
84+
;;!! def str(bar: String)
85+
;;! ^^^^^^
86+
;;!! val foo: String = "foo"
87+
;;! ^^^^^^
88+
(
89+
(_
90+
(_) @_.leading.endOf
91+
.
92+
type: (_) @type
93+
) @_.domain
94+
(#not-type? @_.domain type_definition)
95+
)
96+
97+
;;!! def str(): String = "bar"
98+
;;! ^^^^^^
99+
(function_definition
100+
(parameters) @_.leading.endOf
101+
return_type: (_) @type
102+
) @_.domain
103+
104+
;;!! case 0 => "zero"
105+
;;! ^^^^^^^^^^^^^^^^
106+
(
107+
(case_clause) @branch
108+
(#trim-end! @branch)
109+
)
110+
111+
;;!! class Foo(aaa: Int, bbb: Int) {}
112+
;;! ^^^^^^^^ ^^^^^^^^
113+
(
114+
(class_parameters
115+
(_)? @_.leading.endOf
116+
.
117+
(_) @argumentOrParameter
118+
.
119+
(_)? @_.trailing.startOf
120+
) @_dummy
121+
(#single-or-multi-line-delimiter! @argumentOrParameter @_dummy ", " ",\n")
122+
)
123+
124+
;;!! def foo(aaa: Int, bbb: Int) = x
125+
;;! ^^^^^^^^ ^^^^^^^^
126+
(
127+
(parameters
128+
(_)? @_.leading.endOf
129+
.
130+
(_) @argumentOrParameter
131+
.
132+
(_)? @_.trailing.startOf
133+
) @_dummy
134+
(#single-or-multi-line-delimiter! @argumentOrParameter @_dummy ", " ",\n")
135+
)
136+
137+
;;!! foo(aaa, bbb)
138+
;;! ^^^ ^^^
139+
(
140+
(arguments
141+
(_)? @_.leading.endOf
142+
.
143+
(_) @argumentOrParameter
144+
.
145+
(_)? @_.trailing.startOf
146+
) @_dummy
147+
(#single-or-multi-line-delimiter! @argumentOrParameter @_dummy ", " ",\n")
148+
)
149+
150+
(_
151+
(class_parameters
152+
"(" @argumentList.start.endOf @argumentOrParameter.iteration.start.endOf
153+
")" @argumentList.end.startOf @argumentOrParameter.iteration.end.startOf
154+
) @_dummy
155+
(#empty-single-multi-delimiter! @argumentList.start.endOf @_dummy "" ", " ",\n")
156+
) @argumentList.domain @argumentOrParameter.iteration.domain
157+
158+
(_
159+
(parameters
160+
"(" @argumentList.start.endOf @argumentOrParameter.iteration.start.endOf
161+
")" @argumentList.end.startOf @argumentOrParameter.iteration.end.startOf
162+
) @_dummy
163+
(#empty-single-multi-delimiter! @argumentList.start.endOf @_dummy "" ", " ",\n")
164+
) @argumentList.domain @argumentOrParameter.iteration.domain
165+
166+
(_
167+
(arguments
168+
"(" @argumentList.start.endOf @argumentOrParameter.iteration.start.endOf
169+
")" @argumentList.end.startOf @argumentOrParameter.iteration.end.startOf
170+
) @_dummy
171+
(#empty-single-multi-delimiter! @argumentList.start.endOf @_dummy "" ", " ",\n")
172+
) @argumentList.domain @argumentOrParameter.iteration.domain
173+
57174
operator: (operator_identifier) @disqualifyDelimiter
58175
(enumerator
59176
"<-" @disqualifyDelimiter

0 commit comments

Comments
 (0)