Skip to content

Commit 9249aaf

Browse files
committed
Add sql-language-server
1 parent d7ac678 commit 9249aaf

File tree

10 files changed

+1397
-39
lines changed

10 files changed

+1397
-39
lines changed

atest/01_Editor.robot

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,9 @@ TypeScript
6060
${def} = Set Variable xpath:(//span[contains(@class, 'cm-variable')][contains(text(), 'inc')])[last()]
6161
Editor Shows Features for Language TypeScript example.ts Diagnostics=The left-hand side of an arithmetic Jump to Definition=${def} Rename=${def}
6262

63+
SQL
64+
Editor Shows Features for Language SQL example.sql Diagnostics=Expected
65+
6366
YAML
6467
Editor Shows Features for Language YAML example.yaml Diagnostics=duplicate key
6568

atest/05_Features/Completion.robot

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ Cell Editor Should Equal
130130
Select Completer Suggestion
131131
[Arguments] ${text}
132132
${suggestion} = Set Variable css:.jp-Completer-item[data-value="${text}"]
133-
Wait Until Element Is Visible ${suggestion} timeout=10s
133+
Wait Until Element Is Visible ${suggestion} timeout=10s
134134
Mouse Over ${suggestion}
135135
Click Element ${suggestion} code
136136

atest/examples/example.sql

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
SELECT * FR

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
"lerna": "^3.13.2",
1717
"precise-commits": "^1.0.2",
1818
"prettier": "^2.0.5",
19+
"sql-language-server": "^0.11.4",
1920
"typescript": "~3.9.5",
2021
"unified-language-server": "^0.3.0",
2122
"vscode-css-languageserver-bin": "^1.4.0",
@@ -24,8 +25,7 @@
2425
"yaml-language-server": "~0.4.0"
2526
},
2627
"husky": {
27-
"hooks": {
28-
}
28+
"hooks": {}
2929
},
3030
"prettier": {
3131
"arrowParens": "avoid",

py_src/jupyter_lsp/specs/__init__.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
""" default specs
22
"""
33
# flake8: noqa: F401
4+
45
from .bash_language_server import BashLanguageServer
56
from .dockerfile_language_server_nodejs import DockerfileLanguageServerNodeJS
67
from .javascript_typescript_langserver import JavascriptTypescriptLanguageServer
78
from .pyls import PythonLanguageServer
89
from .r_languageserver import RLanguageServer
10+
from .sql_langserver import SQLLanguageServer
911
from .texlab import Texlab
1012
from .unified_language_server import UnifiedLanguageServer
1113
from .vscode_css_languageserver import VSCodeCSSLanguageServer
@@ -23,4 +25,5 @@
2325
r = RLanguageServer()
2426
tex = Texlab()
2527
ts = JavascriptTypescriptLanguageServer()
28+
sql = SQLLanguageServer()
2629
yaml = YAMLLanguageServer()
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
{
2+
"properties": {
3+
"personalConfig": {
4+
"connections": {
5+
"type": "array",
6+
"default": [
7+
{
8+
"name": "default sqlite3 connection",
9+
"adapter": "sqlite3",
10+
"filename": ":memory:",
11+
"projectPaths": ["."]
12+
}
13+
],
14+
"items": {
15+
"type": "object",
16+
"properties": {
17+
"name": {
18+
"description": "Connection name (free-form text)",
19+
"type": "string"
20+
},
21+
"adapter": {
22+
"description": "Database type",
23+
"type": "string",
24+
"enum": ["mysql", "postgresql", "postgres", "sqlite3"]
25+
},
26+
"host": {
27+
"description": "Database host",
28+
"type": "string"
29+
},
30+
"port": {
31+
"description": "Database port",
32+
"type": "number"
33+
},
34+
"user": {
35+
"description": "Database user",
36+
"type": "string"
37+
},
38+
"database": {
39+
"description": "Database name",
40+
"type": "string"
41+
},
42+
"password": {
43+
"description": "Database password",
44+
"type": "string"
45+
},
46+
"filename": {
47+
"description": "Database filename - only for sqlite3 (required); use ':memory:' for in-memory database",
48+
"type": "string"
49+
},
50+
"projectPaths": {
51+
"description": "Project path that you want to apply (if you don't set it configuration will not apply automatically when lsp's started up)",
52+
"type": "array",
53+
"items": { "type": "string" }
54+
}
55+
}
56+
}
57+
}
58+
}
59+
}
60+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
from .config import load_config_schema
2+
from .utils import NodeModuleSpec
3+
4+
5+
class SQLLanguageServer(NodeModuleSpec):
6+
"""Supports mysql, postgres and sqlite3"""
7+
8+
node_module = key = "sql-language-server"
9+
script = ["dist", "bin", "cli.js"]
10+
languages = [
11+
"sql",
12+
]
13+
args = ["up", "--method", "stdio"]
14+
spec = dict(
15+
display_name=key,
16+
mime_types=[
17+
"application/sql",
18+
"text/sql",
19+
"text/x-sql",
20+
"text/x-mysql",
21+
"text/x-mariadb",
22+
"text/x-pgsql",
23+
],
24+
urls=dict(
25+
home="https://github.com/joe-re/{}".format(key),
26+
issues="https://github.com/joe-re/{}/issues".format(key),
27+
),
28+
install=dict(
29+
npm="npm install --save-dev {}".format(key),
30+
yarn="yarn add --dev {}".format(key),
31+
jlpm="jlpm add --dev {}".format(key),
32+
),
33+
config_schema=load_config_schema(key),
34+
)

py_src/jupyter_lsp/tests/conftest.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,12 @@
33
import shutil
44
from typing import Text
55

6-
from notebook.notebookapp import NotebookApp
7-
from pytest import fixture
8-
from tornado.queues import Queue
9-
106
# local imports
117
from jupyter_lsp import LanguageServerManager
128
from jupyter_lsp.handlers import LanguageServersHandler, LanguageServerWebSocketHandler
9+
from notebook.notebookapp import NotebookApp
10+
from pytest import fixture
11+
from tornado.queues import Queue
1312

1413
# these should always be available in a test environment ()
1514
KNOWN_SERVERS = [
@@ -18,6 +17,7 @@
1817
"javascript-typescript-langserver",
1918
"pyls",
2019
"unified-language-server",
20+
"sql-language-server",
2121
"vscode-css-languageserver-bin",
2222
"vscode-html-languageserver-bin",
2323
"vscode-json-languageserver-bin",

setup.cfg

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ jupyter_lsp_spec_v1 =
4343
python-language-server = jupyter_lsp.specs:py
4444
r-languageserver = jupyter_lsp.specs:r
4545
texlab = jupyter_lsp.specs:tex
46+
sql-language-server = jupyter_lsp.specs:sql
4647
unified-language-server = jupyter_lsp.specs:md
4748
vscode-css-languageserver-bin = jupyter_lsp.specs:css
4849
vscode-html-languageserver-bin = jupyter_lsp.specs:html

0 commit comments

Comments
 (0)