@@ -28,6 +28,8 @@ const ctx = {
2828 ask : ( ) => Effect . void ,
2929}
3030
31+ const workspaceSymbolQueries : string [ ] = [ ]
32+
3133const lsp = Layer . succeed (
3234 LSP . Service ,
3335 LSP . Service . of ( {
@@ -41,7 +43,11 @@ const lsp = Layer.succeed(
4143 references : ( ) => Effect . succeed ( [ ] ) ,
4244 implementation : ( ) => Effect . succeed ( [ ] ) ,
4345 documentSymbol : ( ) => Effect . succeed ( [ ] ) ,
44- workspaceSymbol : ( ) => Effect . succeed ( [ ] ) ,
46+ workspaceSymbol : ( query ) =>
47+ Effect . sync ( ( ) => {
48+ workspaceSymbolQueries . push ( query )
49+ return [ ]
50+ } ) ,
4551 prepareCallHierarchy : ( ) => Effect . succeed ( [ ] ) ,
4652 incomingCalls : ( ) => Effect . succeed ( [ ] ) ,
4753 outgoingCalls : ( ) => Effect . succeed ( [ ] ) ,
@@ -142,6 +148,7 @@ describe("tool.lsp", () => {
142148 provideTmpdirInstance (
143149 ( dir ) =>
144150 Effect . gen ( function * ( ) {
151+ workspaceSymbolQueries . length = 0
145152 const file = path . join ( dir , "test.ts" )
146153 yield * put ( file )
147154
@@ -158,5 +165,22 @@ describe("tool.lsp", () => {
158165 { git : true } ,
159166 ) ,
160167 )
168+
169+ it . live ( "passes workspaceSymbol query to LSP" , ( ) =>
170+ provideTmpdirInstance (
171+ ( dir ) =>
172+ Effect . gen ( function * ( ) {
173+ workspaceSymbolQueries . length = 0
174+ const file = path . join ( dir , "test.ts" )
175+ yield * put ( file )
176+
177+ yield * run ( { operation : "workspaceSymbol" , filePath : file , line : 3 , character : 7 , query : "TestSymbol" } )
178+ yield * run ( { operation : "workspaceSymbol" , filePath : file , line : 3 , character : 7 } )
179+
180+ expect ( workspaceSymbolQueries ) . toEqual ( [ "TestSymbol" , "" ] )
181+ } ) ,
182+ { git : true } ,
183+ ) ,
184+ )
161185 } )
162186} )
0 commit comments