Skip to content

Commit

Permalink
simplify kak -> kak-lsp msg format; close #3
Browse files Browse the repository at this point in the history
  • Loading branch information
ul committed Apr 1, 2018
1 parent 933ad71 commit fd52075
Show file tree
Hide file tree
Showing 7 changed files with 144 additions and 280 deletions.
7 changes: 3 additions & 4 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ serde_derive = "1"
serde_json = "1"
toml = "0"
url = "1"
url_serde = "0"

[profile.release]
lto = true
Expand Down
205 changes: 65 additions & 140 deletions rc/lsp.kak
Original file line number Diff line number Diff line change
Expand Up @@ -4,25 +4,15 @@ decl -hidden completions lsp_completions
def lsp-did-change %{
decl -hidden str lsp_draft %sh{ mktemp }
eval -no-hooks write %opt{lsp_draft}
nop %sh{ printf '{
"meta": {
"session" : "%s",
"client" : "%s",
"buffile" : "%s",
"version" : %d
},
"call": {
"jsonrpc" : "2.0",
"method" : "textDocument/didChange",
"params" : {
"textDocument" : {
"uri" : "file://%s",
"version" : %d,
"draft" : "%s"
}
}
}
}\n' "${kak_session}" "${kak_client}" "${kak_buffile}" "${kak_timestamp}" "${kak_buffile}" "${kak_timestamp}" ${kak_opt_lsp_draft} | ${kak_opt_lsp_cmd} }
nop %sh{ (printf '
session = "%s"
client = "%s"
buffile = "%s"
version = %d
method = "textDocument/didChange"
[params]
draft = "%s"
' "${kak_session}" "${kak_client}" "${kak_buffile}" "${kak_timestamp}" "${kak_opt_lsp_draft}" | ${kak_opt_lsp_cmd}) > /dev/null 2>&1 < /dev/null & }
}

def lsp-completion %{
Expand All @@ -33,142 +23,77 @@ def lsp-completion %{
} catch %{
set buffer lsp_completion_offset "0"
}}
nop %sh{ printf '{
"meta": {
"session" : "%s",
"client" : "%s",
"buffile" : "%s",
"version" : %d
},
"call" : {
"jsonrpc" : "2.0",
"method" : "textDocument/completion",
"params" : {
"textDocument" : {
"uri" : "file://%s",
"version" : %d
},
"position": {
"line" : %d,
"character": %d
},
"completion" : {
"offset" : %d
}
}
}
}\n' "${kak_session}" "${kak_client}" "${kak_buffile}" "${kak_timestamp}" "${kak_buffile}" "${kak_timestamp}" $(expr ${kak_cursor_line} - 1) $(expr ${kak_cursor_column} - 1) ${kak_opt_lsp_completion_offset} | ${kak_opt_lsp_cmd} }
nop %sh{ (printf '
session = "%s"
client = "%s"
buffile = "%s"
version = %d
method = "textDocument/completion"
[params.position]
line = %d
character = %d
[params.completion]
offset = %d
' "${kak_session}" "${kak_client}" "${kak_buffile}" "${kak_timestamp}" $(expr ${kak_cursor_line} - 1) $(expr ${kak_cursor_column} - 1) ${kak_opt_lsp_completion_offset} | ${kak_opt_lsp_cmd}) > /dev/null 2>&1 < /dev/null & }
}

def lsp-hover %{
nop %sh{ printf '{
"meta": {
"session" : "%s",
"client" : "%s",
"buffile" : "%s",
"version" : %d
},
"call" : {
"jsonrpc" : "2.0",
"method" : "textDocument/hover",
"params" : {
"textDocument" : {
"uri" : "file://%s"
},
"position": {
"line" : %d,
"character": %d
}
}
}
}\n' "${kak_session}" "${kak_client}" "${kak_buffile}" "${kak_timestamp}" "${kak_buffile}" $(expr ${kak_cursor_line} - 1) $(expr ${kak_cursor_column} - 1) | ${kak_opt_lsp_cmd} }
nop %sh{ (printf '
session = "%s"
client = "%s"
buffile = "%s"
version = %d
method = "textDocument/hover"
[params.position]
line = %d
character = %d
' "${kak_session}" "${kak_client}" "${kak_buffile}" "${kak_timestamp}" $(expr ${kak_cursor_line} - 1) $(expr ${kak_cursor_column} - 1) | ${kak_opt_lsp_cmd}) > /dev/null 2>&1 < /dev/null & }
}

def lsp-definition %{
nop %sh{ printf '{
"meta": {
"session" : "%s",
"client" : "%s",
"buffile" : "%s",
"version" : %d
},
"call" : {
"jsonrpc" : "2.0",
"method" : "textDocument/definition",
"params" : {
"textDocument" : {
"uri" : "file://%s"
},
"position": {
"line" : %d,
"character": %d
}
}
}
}\n' "${kak_session}" "${kak_client}" "${kak_buffile}" "${kak_timestamp}" "${kak_buffile}" $(expr ${kak_cursor_line} - 1) $(expr ${kak_cursor_column} - 1) | ${kak_opt_lsp_cmd} }
nop %sh{ (printf '
session = "%s"
client = "%s"
buffile = "%s"
version = %d
method = "textDocument/definition"
[params.position]
line = %d
character = %d
' "${kak_session}" "${kak_client}" "${kak_buffile}" "${kak_timestamp}" $(expr ${kak_cursor_line} - 1) $(expr ${kak_cursor_column} - 1) | ${kak_opt_lsp_cmd}) > /dev/null 2>&1 < /dev/null & }
}

def lsp-did-open %{
nop %sh{printf '{
"meta": {
"session" : "%s",
"client" : "%s",
"buffile" : "%s",
"version" : %d
},
"call" : {
"jsonrpc" : "2.0",
"method" : "textDocument/didOpen",
"params" : {
"textDocument" : {
"uri" : "file://%s",
"version" : %d
}
}
}
}\n' "${kak_session}" "${kak_client}" "${kak_buffile}" "${kak_timestamp}" "${kak_buffile}" "${kak_timestamp}" | ${kak_opt_lsp_cmd}}
nop %sh{ (printf '
session = "%s"
client = "%s"
buffile = "%s"
version = %d
method = "textDocument/didOpen"
[params]
' "${kak_session}" "${kak_client}" "${kak_buffile}" "${kak_timestamp}" | ${kak_opt_lsp_cmd}) > /dev/null 2>&1 < /dev/null & }
}

def lsp-did-close %{
nop %sh{printf '{
"meta": {
"session" : "%s",
"client" : "%s",
"buffile" : "%s",
"version" : %d
},
"call" : {
"jsonrpc" : "2.0",
"method" : "textDocument/didClose",
"params" : {
"textDocument" : {
"uri" : "file://%s",
"version" : %d
}
}
}
}\n' "${kak_session}" "${kak_client}" "${kak_buffile}" "${kak_timestamp}" "${kak_buffile}" "${kak_timestamp}" | ${kak_opt_lsp_cmd}}
nop %sh{ (printf '
session = "%s"
client = "%s"
buffile = "%s"
version = %d
method = "textDocument/didClose"
[params]
' "${kak_session}" "${kak_client}" "${kak_buffile}" "${kak_timestamp}" | ${kak_opt_lsp_cmd}) > /dev/null 2>&1 < /dev/null & }
}

def lsp-did-save %{
nop %sh{printf '{
"meta": {
"session" : "%s",
"client" : "%s",
"buffile" : "%s",
"version" : %d
},
"call" : {
"jsonrpc" : "2.0",
"method" : "textDocument/didSave",
"params" : {
"textDocument" : {
"uri" : "file://%s",
"version" : %d
}
}
}
}\n' "${kak_session}" "${kak_client}" "${kak_buffile}" "${kak_timestamp}" "${kak_buffile}" "${kak_timestamp}" | ${kak_opt_lsp_cmd}}
nop %sh{ (printf '
session = "%s"
client = "%s"
buffile = "%s"
version = %d
method = "textDocument/didSave"
[params]
' "${kak_session}" "${kak_client}" "${kak_buffile}" "${kak_timestamp}" | ${kak_opt_lsp_cmd}) > /dev/null 2>&1 < /dev/null & }
}

def lsp-enable %{
Expand Down
Loading

0 comments on commit fd52075

Please sign in to comment.