Skip to content

Commit 0510409

Browse files
committed
temp [ci skip]
1 parent b56e01b commit 0510409

6 files changed

Lines changed: 32 additions & 39 deletions

File tree

sqlmesh/lsp/api.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ class ApiRequest(PydanticModel):
1818
Request to call the SQLMesh API.
1919
This is a generic request that can be used to call any API endpoint.
2020
"""
21-
request_id: str
21+
requestId: str
2222
url: str
2323
method: t.Optional[str] = "GET"
2424
params: t.Optional[t.Dict[str, t.Any]] = None
@@ -31,4 +31,4 @@ class ApiResponse(PydanticModel):
3131
This is a generic response that can be used to return data from any API endpoint.
3232
"""
3333

34-
data: t.Dict[str, t.Any]
34+
data: t.Union[t.Dict[str, t.Any], t.List[t.Any]]

sqlmesh/lsp/main.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
from sqlmesh.lsp.context import LSPContext
1717
from sqlmesh.lsp.custom import ALL_MODELS_FEATURE, AllModelsRequest, AllModelsResponse
1818
from sqlmesh.lsp.reference import get_model_definitions_for_a_path
19+
from web.server.api.endpoints.models import get_models
1920

2021

2122
class SQLMeshLanguageServer:
@@ -52,12 +53,13 @@ def all_models(
5253
return get_sql_completions(None, params.textDocument.uri)
5354

5455
@self.server.feature(API_FEATURE)
55-
def api(ls: LanguageServer, params: any) -> ApiResponse:
56-
ls.log_trace(f"API call: {params}")
57-
request = ApiRequest(**params)
58-
# TODO Implement this
59-
ls.log_trace(f"API call: {request.url} {request.method} {request.params} {request.body}")
60-
return ApiResponse(data={})
56+
def api(ls: LanguageServer, request: ApiRequest) -> t.Dict[str, t.Any]:
57+
if self.lsp_context is None:
58+
return ApiResponse(data={})
59+
if request.url == "/api/models":
60+
response = ApiResponse(data=get_models(self.lsp_context.context))
61+
return response.model_dump(mode='json')
62+
return ApiResponse(data={}).model_dump(mode='json')
6163

6264
@self.server.feature(types.TEXT_DOCUMENT_DID_OPEN)
6365
def did_open(

vscode/bus/src/callbacks.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,12 @@ export type Callback = {
22
openFile: {
33
path: string
44
}
5+
queryRequest: {
6+
requestId: string
7+
url: string
8+
params: Record<string, string>
9+
body: Record<string, any>
10+
}
511
}
612

713
/**

vscode/extension/src/extension.ts

Lines changed: 1 addition & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import {
77
} from './utilities/common/vscodeapi'
88
import {
99
registerLogger,
10-
traceError,
1110
traceInfo,
1211
traceVerbose,
1312
} from './utilities/common/log'
@@ -28,7 +27,6 @@ import { WebServer } from './web-server/server'
2827
import { LineagePanel } from './webviews/lineagePanel'
2928

3029
let lspClient: LSPClient | undefined
31-
let webServer: WebServer | undefined
3230

3331
// This method is called when your extension is activated
3432
// Your extension is activated the very first time the command is executed
@@ -58,8 +56,6 @@ export async function activate(context: vscode.ExtensionContext) {
5856
)
5957
traceInfo('Authentication provider registered')
6058

61-
webServer = new WebServer(webServerOutputChannel)
62-
6359
context.subscriptions.push(
6460
vscode.commands.registerCommand('sqlmesh.signin', signIn(authProvider)),
6561
)
@@ -100,11 +96,7 @@ export async function activate(context: vscode.ExtensionContext) {
10096
}
10197

10298
// Register the webview
103-
const lineagePanel = new LineagePanel(
104-
context.extensionUri,
105-
webServer,
106-
lspClient,
107-
)
99+
const lineagePanel = new LineagePanel(context.extensionUri, lspClient)
108100
context.subscriptions.push(
109101
vscode.window.registerWebviewViewProvider(
110102
LineagePanel.viewType,
@@ -113,13 +105,6 @@ export async function activate(context: vscode.ExtensionContext) {
113105
)
114106

115107
const restart = async () => {
116-
if (webServer) {
117-
webServer.stop()
118-
const startResult = await webServer.start()
119-
if (isErr(startResult)) {
120-
traceError('Failed to start web server', startResult.error)
121-
}
122-
}
123108
if (lspClient) {
124109
traceVerbose('Restarting LSP client')
125110
const restartResult = await lspClient.restart()
@@ -149,7 +134,4 @@ export async function deactivate() {
149134
if (lspClient) {
150135
await lspClient.dispose()
151136
}
152-
if (webServer) {
153-
webServer.stop()
154-
}
155137
}

vscode/extension/src/webviews/lineagePanel.ts

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import {
1212
} from 'vscode'
1313
import { isProduction } from '../utilities/isDev'
1414
import { getWorkspaceFolders } from '../utilities/common/vscodeapi'
15-
import { WebServer } from '../web-server/server'
1615
import { LSPClient } from '../lsp/lsp'
1716

1817
export class LineagePanel implements WebviewViewProvider, Disposable {
@@ -24,9 +23,8 @@ export class LineagePanel implements WebviewViewProvider, Disposable {
2423

2524
private _disposables: Disposable[] = []
2625

27-
public constructor(extensionUri: Uri, webServer: WebServer, lsp: LSPClient) {
26+
public constructor(extensionUri: Uri, lsp: LSPClient) {
2827
this._extensionUri = extensionUri
29-
this.webServer = webServer
3028
this.lsp = lsp
3129

3230
if (this.panel) {
@@ -86,7 +84,7 @@ export class LineagePanel implements WebviewViewProvider, Disposable {
8684
const payload: CallbackEvent = message.payload
8785
// Handle callback events from the iframe
8886
switch (payload.key) {
89-
case 'openFile':
87+
case 'openFile': {
9088
console.log('opening file ', payload.payload.path)
9189
const workspaceFolders = getWorkspaceFolders()
9290
if (workspaceFolders.length != 1) {
@@ -101,18 +99,23 @@ export class LineagePanel implements WebviewViewProvider, Disposable {
10199
const document = await workspace.openTextDocument(fullPath)
102100
await window.showTextDocument(document)
103101
break
102+
}
104103
default:
105-
console.log(`Unhandled message type in key: ${message.key}`)
104+
console.log('Unhandled message type: ', message)
106105
}
107106
break
108107
}
109-
case 'query_request': {
108+
case 'queryRequest': {
109+
console.log('queryRequest', message.payload)
110110
const payload = message.payload
111-
const response = this.lsp.call_custom_method('sqlmesh/api', payload)
112-
console.log('response from lsp', response)
113-
webviewView.webview.postMessage({
114-
key: 'query_response',
115-
payload: response,
111+
const response = this.lsp.call_custom_method(
112+
'sqlmesh/api',
113+
payload,
114+
)
115+
console.log('response from lsp', response)
116+
webviewView.webview.postMessage({
117+
key: 'query_response',
118+
payload: response,
116119
})
117120
break
118121
}

vscode/react/src/api/instance.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ async function fetchAPIDevelopment<T = any, B extends object = any>(
7272
if (window.parent !== window) {
7373
console.log('posting message to parent iframe')
7474
window.parent.postMessage({
75-
key: 'query_request',
75+
key: 'queryRequest',
7676
payload: {
7777
requestId,
7878
url: config.url,

0 commit comments

Comments
 (0)