cxxxr / cl-lsp Goto Github PK
View Code? Open in Web Editor NEWAn implementation of the Language Server Protocol for Common Lisp
License: MIT License
An implementation of the Language Server Protocol for Common Lisp
License: MIT License
Hey,
Having an LSP implementation for CL would be great!
Unfortunately, it's impossible to look at your source code
(or fork or contribute) because no license is listed.
So, would you consider adding an open source license
(like MIT) to the project?
Thanks,
Danilo
Hi, I'm trying to use cl-lsp with kakoune text editor, which has a lsp client, but when the server start it immediately fails with a port already in use message.
@cxxxr It looks like I can not run it in vscode according to your readme:
depends on vscode-lisp
$ cd ~/.roswell/cl-lsp/vscode
$ npm install
$ code .
After vscode is started, I opened the "vscode" path and hit F5, then in the new vscode instance to open some lisp files, but there is no command as "lisp.replStart" and so on.
I try to setup it in windows, and .roswel is installed in dir like:
C:\Users\test\.roswell
and the vscode path is:
C:\Users\test\.roswell\local-projects\cxxxr\cl-lsp\vscode
Asking the author if he’s interested in having another helper on this project. If not who else on here would be interested in forking this and making a true LSP?
I'm using the server in neovim; when I format, nothing happens.
This is printed to the log file:
<INFO> [16:06:19] lem-language-server method.lisp (log-request) -
textDocument/formatting: {"options":{"insertSpaces":true,"tabSize":4},"textDocument":{"uri":"file:///home/lordmzte/dev/clisp/coin_toss.lisp"}}
<INFO> [16:06:19] lem-language-server method.lisp (log-response) -
textDocument/formatting: []
The code will remain unchanged even tho it has some very obvious improper formatting.
I was looking for this a couple weeks back and concluded that common lisp didn't have a language server until I found this thread. I think it should be added to langserver.org
Diagnostics don't seem to be supported yet; even a simple error such as imbalanced parenthesis aren't reported.
I've been trying to install cl-lsp in ros with sbcl 2.1.2 to use vscode but it fails to install due to the missing SB-KERNEL:%SIMPLE-FUN-NEXT function in the latest sbcl.
Is there a fix for this?
Since I'm using M1 MacOS and the only version supporting Arm64 Mac is SBCL 2.1.2 I would need a fix for this.
On Linux it is the same but over there, installing sbcl 2.1.0 eliminates the problem, however, a fix would be good there too to be able to use the latest sbcl version.
I think this issue is present in prepl as well.
Brand new install in April 2023. Tried to install via instructions on the website:
λ ros install lem-project/lem cxxxr/cl-lsp
Installing sbcl-bin...
No SBCL version specified. Downloading sbcl-bin_uri.tsv to see the available versions...
[##########################################################################]100%
Installing sbcl-bin/2.3.3...
Downloading https://github.com/roswell/sbcl_bin/releases/download/2.3.3/sbcl-2.3.3-x86-64-linux-binary.tar.bz2
[##########################################################################]100%
Extracting sbcl-bin-2.3.3-x86-64-linux.tar.bz2 to /home/ghost/.roswell/src/sbcl-2.3.3-x86-64-linux/
Building sbcl-bin/2.3.3... Done.
Install Script for sbcl-bin...
Installing Quicklisp... Done 19968
Making core for Roswell...
Installing from github lem-project/lem
To load "lem":
Load 1 ASDF system:
lem
; Loading "lem"
To load "inquisitor":
Load 3 ASDF systems:
alexandria anaphora asdf
Install 1 Quicklisp release:
inquisitor
Downloading http://beta.quicklisp.org/archive/inquisitor/2019-05-21/inquisitor-20190521-git.tgz
##########################################################################
; Loading "inquisitor"
[package inquisitor.encoding.dfa].................
[package inquisitor.encoding.table]...............
..................................................
[package inquisitor.encoding.guess]...............
[package inquisitor.eol]..........................
[package inquisitor.names]........................
[package inquisitor.external-format]..............
[package inquisitor.util].........................
[package inquisitor].
To load "lem":
Load 1 ASDF system:
lem
; Loading "lem"
To load "bordeaux-threads":
Load 2 ASDF systems:
alexandria asdf
Install 1 Quicklisp release:
bordeaux-threads
Downloading http://beta.quicklisp.org/archive/bordeaux-threads/2022-07-07/bordeaux-threads-v0.8.8.tgz
##########################################################################
; Loading "bordeaux-threads"
[package bordeaux-threads]...
To load "lem":
Load 1 ASDF system:
lem
; Loading "lem"
To load "yason":
Load 3 ASDF systems:
alexandria asdf trivial-gray-streams
Install 1 Quicklisp release:
yason
Downloading http://beta.quicklisp.org/archive/yason/2023-02-14/yason-20230214-git.tgz
##########################################################################
; Loading "yason"
[package yason]......
To load "lem":
Load 1 ASDF system:
lem
; Loading "lem"
To load "log4cl":
Load 2 ASDF systems:
asdf bordeaux-threads
Install 1 Quicklisp release:
log4cl
Downloading http://beta.quicklisp.org/archive/log4cl/2021-12-09/log4cl-20211209-git.tgz
##########################################################################
; Loading "log4cl"
[package log4cl.package-setup]....................
[package log4cl-impl]....[1/3] System 'lem' found. Loading the system..
;
; caught ERROR:
; READ error during COMPILE-FILE:
;
; Lock on package SB-C violated when interning LAMBDA-PARENT while in package
; LOG4CL-IMPL.
; See also:
; The SBCL Manual, Node "Package Locks"
;
; (in form starting at line: 99, column: 0, position: 3779)
Aborted during step [1/3].
Unhandled UIOP/LISP-BUILD:COMPILE-FILE-ERROR in thread #<SB-THREAD:THREAD tid=17237 "main thread" RUNNING
{10010A8113}>:
COMPILE-FILE-ERROR while
compiling #<CL-SOURCE-FILE "log4cl" "src" "naming-sbcl">
Backtrace for: #<SB-THREAD:THREAD tid=17237 "main thread" RUNNING {10010A8113}>
0: (SB-DEBUG::DEBUGGER-DISABLED-HOOK #<UIOP/LISP-BUILD:COMPILE-FILE-ERROR {1004B7A8B3}> # :QUIT T)
1: (SB-DEBUG::RUN-HOOK SB-EXT:INVOKE-DEBUGGER-HOOK #<UIOP/LISP-BUILD:COMPILE-FILE-ERROR {1004B7A8B3}>)
2: (INVOKE-DEBUGGER #<UIOP/LISP-BUILD:COMPILE-FILE-ERROR {1004B7A8B3}>)
3: (ERROR UIOP/LISP-BUILD:COMPILE-FILE-ERROR :CONTEXT-FORMAT "/asdf-action::format-action/" :CONTEXT-ARGUMENTS ((#<ASDF/LISP-ACTION:COMPILE-OP > . #<ASDF/LISP-ACTION:CL-SOURCE-FILE "log4cl" "src" "naming-sbcl">)))/asdf-action::format-action/" ((#<ASDF/LISP-ACTION:COMPILE-OP > . #<ASDF/LISP-ACTION:CL-SOURCE-FILE "log4cl" "src" "naming-sbcl">)))
4: (UIOP/LISP-BUILD:CHECK-LISP-COMPILE-RESULTS NIL T T "
5: ((SB-PCL::EMF ASDF/ACTION:PERFORM) # # #<ASDF/LISP-ACTION:COMPILE-OP > #<ASDF/LISP-ACTION:CL-SOURCE-FILE "log4cl" "src" "naming-sbcl">)
6: ((LAMBDA NIL :IN ASDF/ACTION:CALL-WHILE-VISITING-ACTION))
7: ((:METHOD ASDF/ACTION:PERFORM-WITH-RESTARTS :AROUND (T T)) #<ASDF/LISP-ACTION:COMPILE-OP > #<ASDF/LISP-ACTION:CL-SOURCE-FILE "log4cl" "src" "naming-sbcl">) [fast-method]
8: ((:METHOD ASDF/PLAN:PERFORM-PLAN (T)) #<ASDF/PLAN:SEQUENTIAL-PLAN {1002957403}>) [fast-method]
9: ((FLET SB-C::WITH-IT :IN SB-C::%WITH-COMPILATION-UNIT))
10: ((:METHOD ASDF/PLAN:PERFORM-PLAN :AROUND (T)) #<ASDF/PLAN:SEQUENTIAL-PLAN {1002957403}>) [fast-method]
11: ((:METHOD ASDF/OPERATE:OPERATE (ASDF/OPERATION:OPERATION ASDF/COMPONENT:COMPONENT)) #<ASDF/LISP-ACTION:LOAD-OP > #<ASDF/SYSTEM:SYSTEM "log4cl"> :PLAN-CLASS NIL :PLAN-OPTIONS NIL) [fast-method]
12: ((SB-PCL::EMF ASDF/OPERATE:OPERATE) # # #<ASDF/LISP-ACTION:LOAD-OP > #<ASDF/SYSTEM:SYSTEM "log4cl"> :VERBOSE NIL)
13: ((LAMBDA NIL :IN ASDF/OPERATE:OPERATE))
14: ((:METHOD ASDF/OPERATE:OPERATE :AROUND (T T)) #<ASDF/LISP-ACTION:LOAD-OP > #<ASDF/SYSTEM:SYSTEM "log4cl"> :VERBOSE NIL) [fast-method]
15: ((SB-PCL::EMF ASDF/OPERATE:OPERATE) # # ASDF/LISP-ACTION:LOAD-OP "log4cl" :VERBOSE NIL)
16: ((LAMBDA NIL :IN ASDF/OPERATE:OPERATE))
17: ((:METHOD ASDF/OPERATE:OPERATE :AROUND (T T)) ASDF/LISP-ACTION:LOAD-OP "log4cl" :VERBOSE NIL) [fast-method]
18: (ASDF/SESSION:CALL-WITH-ASDF-SESSION #<FUNCTION (LAMBDA NIL :IN ASDF/OPERATE:OPERATE) {100289E0BB}> :OVERRIDE T :KEY NIL :OVERRIDE-CACHE T :OVERRIDE-FORCING NIL)
19: ((LAMBDA NIL :IN ASDF/OPERATE:OPERATE))
20: (ASDF/SESSION:CALL-WITH-ASDF-SESSION #<FUNCTION (LAMBDA NIL :IN ASDF/OPERATE:OPERATE) {100289ACDB}> :OVERRIDE NIL :KEY NIL :OVERRIDE-CACHE NIL :OVERRIDE-FORCING NIL)
21: ((:METHOD ASDF/OPERATE:OPERATE :AROUND (T T)) ASDF/LISP-ACTION:LOAD-OP "log4cl" :VERBOSE NIL) [fast-method]
22: (ASDF/OPERATE:LOAD-SYSTEM "log4cl" :VERBOSE NIL)
23: (QUICKLISP-CLIENT::CALL-WITH-MACROEXPAND-PROGRESS #<FUNCTION (LAMBDA NIL :IN QUICKLISP-CLIENT::APPLY-LOAD-STRATEGY) {100289AC4B}>)
24: (QUICKLISP-CLIENT::AUTOLOAD-SYSTEM-AND-DEPENDENCIES "log4cl" :PROMPT NIL)
25: (QUICKLISP-CLIENT::AUTOLOAD-SYSTEM-AND-DEPENDENCIES "lem" :PROMPT NIL)
26: ((:METHOD QL-IMPL-UTIL::%CALL-WITH-QUIET-COMPILATION (T T)) # #<FUNCTION (FLET QUICKLISP-CLIENT::QL :IN QUICKLISP-CLIENT:QUICKLOAD) {1002EE73CB}>) [fast-method]
27: ((:METHOD QL-IMPL-UTIL::%CALL-WITH-QUIET-COMPILATION :AROUND (QL-IMPL:SBCL T)) #<QL-IMPL:SBCL {1004AE8423}> #<FUNCTION (FLET QUICKLISP-CLIENT::QL :IN QUICKLISP-CLIENT:QUICKLOAD) {1002EE73CB}>) [fast-method]
28: ((:METHOD QUICKLISP-CLIENT:QUICKLOAD (T)) "lem" :PROMPT NIL :SILENT NIL :VERBOSE NIL) [fast-method]
29: (QL-DIST::CALL-WITH-CONSISTENT-DISTS #<FUNCTION (LAMBDA NIL :IN QUICKLISP-CLIENT:QUICKLOAD) {1002EE29EB}>)
30: (INSTALL-SYSTEM-SCRIPT "lem")
31: (INSTALL-SYSTEM-IF-PROBED "lem")
32: (INSTALL ("cxxxr/cl-lsp"))
33: (SB-INT:SIMPLE-EVAL-IN-LEXENV (APPLY (QUOTE MAIN) ROSWELL:ARGV) #)
34: (SB-INT:SIMPLE-EVAL-IN-LEXENV (ROSWELL:QUIT (APPLY (QUOTE MAIN) ROSWELL:ARGV)) #)
35: (SB-EXT:EVAL-TLF (ROSWELL:QUIT (APPLY (QUOTE MAIN) ROSWELL:ARGV)) NIL NIL)
36: ((LABELS SB-FASL::EVAL-FORM :IN SB-INT:LOAD-AS-SOURCE) (ROSWELL:QUIT (APPLY (QUOTE MAIN) ROSWELL:ARGV)) NIL)
37: (SB-INT:LOAD-AS-SOURCE #<CONCATENATED-STREAM :STREAMS NIL {10022F28A3}> :VERBOSE NIL :PRINT NIL :CONTEXT "loading")
38: ((LABELS SB-FASL::LOAD-STREAM-1 :IN LOAD) #<CONCATENATED-STREAM :STREAMS NIL {10022F28A3}> NIL)
39: (SB-FASL::CALL-WITH-LOAD-BINDINGS #<FUNCTION (LABELS SB-FASL::LOAD-STREAM-1 :IN LOAD) {7F1CC32DF5CB}> #<CONCATENATED-STREAM :STREAMS NIL {10022F28A3}> NIL #<CONCATENATED-STREAM :STREAMS NIL {10022F28A3}>)
40: (LOAD #<CONCATENATED-STREAM :STREAMS NIL {10022F28A3}> :VERBOSE NIL :PRINT NIL :IF-DOES-NOT-EXIST :ERROR :EXTERNAL-FORMAT :DEFAULT)
41: ((FLET ROSWELL::BODY :IN ROSWELL:SCRIPT) #<SB-SYS:FD-STREAM for "file /etc/roswell/install.ros" {10022E79D3}>)
42: (ROSWELL:SCRIPT "/etc/roswell/install.ros" "lem-project/lem" "cxxxr/cl-lsp")
43: (ROSWELL:RUN ((:EVAL "(ros:quicklisp)") (:SCRIPT "/etc/roswell/install.ros" "lem-project/lem" "cxxxr/cl-lsp") (:QUIT NIL)))
44: (SB-INT:SIMPLE-EVAL-IN-LEXENV (ROSWELL:RUN (QUOTE ((:EVAL "(ros:quicklisp)") (:SCRIPT "/etc/roswell/install.ros" "lem-project/lem" "cxxxr/cl-lsp") (:QUIT NIL)))) #)
45: (EVAL (ROSWELL:RUN (QUOTE ((:EVAL "(ros:quicklisp)") (:SCRIPT "/etc/roswell/install.ros" "lem-project/lem" "cxxxr/cl-lsp") (:QUIT NIL)))))
46: (SB-IMPL::PROCESS-EVAL/LOAD-OPTIONS ((:EVAL . "(progn #-ros.init(cl:load "/etc/roswell/init.lisp"))") (:EVAL . "(ros:run '((:eval"(ros:quicklisp)")(:script "/etc/roswell/install.ros""lem-project/lem""cxxxr/cl-lsp")(:quit ())))")))
47: (SB-IMPL::TOPLEVEL-INIT)
48: ((FLET SB-UNIX::BODY :IN SB-IMPL::START-LISP))
49: ((FLET "WITHOUT-INTERRUPTS-BODY-3" :IN SB-IMPL::START-LISP))
50: (SB-IMPL::%START-LISP)
unhandled condition in --disable-debugger mode, quitting
;
; compilation unit aborted
; caught 2 fatal ERROR conditions
; caught 1 ERROR condition
➜ ~
λ
Any ideas what may be the problem?
Thanks.
`ros install lem-project/lem cxxxr/cl-lsp
Installing from github lem-project/lem
To load "lem":
Load 1 ASDF system:
lem
; Loading "lem"
To load "inquisitor":
Load 3 ASDF systems:
alexandria anaphora asdf
Install 1 Quicklisp release:
inquisitor
Downloading http://beta.quicklisp.org/archive/inquisitor/2019-05-21/inquisitor-20190521-git.tgz
##########################################################################
; Loading "inquisitor"
[package inquisitor.encoding.dfa].................
[package inquisitor.encoding.table]...............
..................................................
[package inquisitor.encoding.guess]...............
[package inquisitor.eol]..........................
[package inquisitor.names]........................
[package inquisitor.external-format]..............
[package inquisitor.util].........................
[package inquisitor].
To load "lem":
Load 1 ASDF system:
lem
; Loading "lem"
To load "bordeaux-threads":
Load 2 ASDF systems:
alexandria asdf
Install 1 Quicklisp release:
bordeaux-threads
Downloading http://beta.quicklisp.org/archive/bordeaux-threads/2022-07-07/bordeaux-threads-v0.8.8.tgz
##########################################################################
; Loading "bordeaux-threads"
[package bordeaux-threads]...
To load "lem":
Load 1 ASDF system:
lem
; Loading "lem"
To load "yason":
Load 3 ASDF systems:
alexandria asdf trivial-gray-streams
Install 1 Quicklisp release:
yason
Downloading http://beta.quicklisp.org/archive/yason/2023-02-14/yason-20230214-git.tgz
##########################################################################
; Loading "yason"
[package yason]......
To load "lem":
Load 1 ASDF system:
lem
; Loading "lem"
To load "log4cl":
Load 2 ASDF systems:
asdf bordeaux-threads
Install 1 Quicklisp release:
log4cl
Downloading http://beta.quicklisp.org/archive/log4cl/2021-12-09/log4cl-20211209-git.tgz
##########################################################################
; Loading "log4cl"
[package log4cl.package-setup]....................
[package log4cl-impl]....[1/3] System 'lem' found. Loading the system..
;
; caught ERROR:
; READ error during COMPILE-FILE:
;
; Lock on package SB-C violated when interning LAMBDA-PARENT while in package
; LOG4CL-IMPL.
; See also:
; The SBCL Manual, Node "Package Locks"
;
; (in form starting at line: 99, column: 0, position: 3779)
Aborted during step [1/3].
Unhandled UIOP/LISP-BUILD:COMPILE-FILE-ERROR in thread #<SB-THREAD:THREAD tid=23735 "main thread" RUNNING
{10010D8113}>:
COMPILE-FILE-ERROR while
compiling #<CL-SOURCE-FILE "log4cl" "src" "naming-sbcl">
Backtrace for: #<SB-THREAD:THREAD tid=23735 "main thread" RUNNING {10010D8113}>
0: (SB-DEBUG::DEBUGGER-DISABLED-HOOK #<UIOP/LISP-BUILD:COMPILE-FILE-ERROR {1004AE1F43}> # :QUIT T)
1: (SB-DEBUG::RUN-HOOK SB-EXT:INVOKE-DEBUGGER-HOOK #<UIOP/LISP-BUILD:COMPILE-FILE-ERROR {1004AE1F43}>)
2: (INVOKE-DEBUGGER #<UIOP/LISP-BUILD:COMPILE-FILE-ERROR {1004AE1F43}>)
3: (ERROR UIOP/LISP-BUILD:COMPILE-FILE-ERROR :CONTEXT-FORMAT "/asdf-action::format-action/" :CONTEXT-ARGUMENTS ((#<ASDF/LISP-ACTION:COMPILE-OP > . #<ASDF/LISP-ACTION:CL-SOURCE-FILE "log4cl" "src" "naming-sbcl">)))/asdf-action::format-action/" ((#<ASDF/LISP-ACTION:COMPILE-OP > . #<ASDF/LISP-ACTION:CL-SOURCE-FILE "log4cl" "src" "naming-sbcl">)))
4: (UIOP/LISP-BUILD:CHECK-LISP-COMPILE-RESULTS NIL T T "
5: ((SB-PCL::EMF ASDF/ACTION:PERFORM) # # #<ASDF/LISP-ACTION:COMPILE-OP > #<ASDF/LISP-ACTION:CL-SOURCE-FILE "log4cl" "src" "naming-sbcl">)
6: ((LAMBDA NIL :IN ASDF/ACTION:CALL-WHILE-VISITING-ACTION))
7: ((:METHOD ASDF/ACTION:PERFORM-WITH-RESTARTS :AROUND (T T)) #<ASDF/LISP-ACTION:COMPILE-OP > #<ASDF/LISP-ACTION:CL-SOURCE-FILE "log4cl" "src" "naming-sbcl">) [fast-method]
8: ((:METHOD ASDF/PLAN:PERFORM-PLAN (T)) #<ASDF/PLAN:SEQUENTIAL-PLAN {100293D7C3}>) [fast-method]
9: ((FLET SB-C::WITH-IT :IN SB-C::%WITH-COMPILATION-UNIT))
10: ((:METHOD ASDF/PLAN:PERFORM-PLAN :AROUND (T)) #<ASDF/PLAN:SEQUENTIAL-PLAN {100293D7C3}>) [fast-method]
11: ((:METHOD ASDF/OPERATE:OPERATE (ASDF/OPERATION:OPERATION ASDF/COMPONENT:COMPONENT)) #<ASDF/LISP-ACTION:LOAD-OP > #<ASDF/SYSTEM:SYSTEM "log4cl"> :PLAN-CLASS NIL :PLAN-OPTIONS NIL) [fast-method]
12: ((SB-PCL::EMF ASDF/OPERATE:OPERATE) # # #<ASDF/LISP-ACTION:LOAD-OP > #<ASDF/SYSTEM:SYSTEM "log4cl"> :VERBOSE NIL)
13: ((LAMBDA NIL :IN ASDF/OPERATE:OPERATE))
14: ((:METHOD ASDF/OPERATE:OPERATE :AROUND (T T)) #<ASDF/LISP-ACTION:LOAD-OP > #<ASDF/SYSTEM:SYSTEM "log4cl"> :VERBOSE NIL) [fast-method]
15: ((SB-PCL::EMF ASDF/OPERATE:OPERATE) # # ASDF/LISP-ACTION:LOAD-OP "log4cl" :VERBOSE NIL)
16: ((LAMBDA NIL :IN ASDF/OPERATE:OPERATE))
17: ((:METHOD ASDF/OPERATE:OPERATE :AROUND (T T)) ASDF/LISP-ACTION:LOAD-OP "log4cl" :VERBOSE NIL) [fast-method]
18: (ASDF/SESSION:CALL-WITH-ASDF-SESSION #<FUNCTION (LAMBDA NIL :IN ASDF/OPERATE:OPERATE) {100287E42B}> :OVERRIDE T :KEY NIL :OVERRIDE-CACHE T :OVERRIDE-FORCING NIL)
19: ((LAMBDA NIL :IN ASDF/OPERATE:OPERATE))
20: (ASDF/SESSION:CALL-WITH-ASDF-SESSION #<FUNCTION (LAMBDA NIL :IN ASDF/OPERATE:OPERATE) {100287AFBB}> :OVERRIDE NIL :KEY NIL :OVERRIDE-CACHE NIL :OVERRIDE-FORCING NIL)
21: ((:METHOD ASDF/OPERATE:OPERATE :AROUND (T T)) ASDF/LISP-ACTION:LOAD-OP "log4cl" :VERBOSE NIL) [fast-method]
22: (ASDF/OPERATE:LOAD-SYSTEM "log4cl" :VERBOSE NIL)
23: (QUICKLISP-CLIENT::CALL-WITH-MACROEXPAND-PROGRESS #<FUNCTION (LAMBDA NIL :IN QUICKLISP-CLIENT::APPLY-LOAD-STRATEGY) {100287AF2B}>)
24: (QUICKLISP-CLIENT::AUTOLOAD-SYSTEM-AND-DEPENDENCIES "log4cl" :PROMPT NIL)
25: (QUICKLISP-CLIENT::AUTOLOAD-SYSTEM-AND-DEPENDENCIES "lem" :PROMPT NIL)
26: ((:METHOD QL-IMPL-UTIL::%CALL-WITH-QUIET-COMPILATION (T T)) # #<FUNCTION (FLET QUICKLISP-CLIENT::QL :IN QUICKLISP-CLIENT:QUICKLOAD) {1002F233DB}>) [fast-method]
27: ((:METHOD QL-IMPL-UTIL::%CALL-WITH-QUIET-COMPILATION :AROUND (QL-IMPL:SBCL T)) #<QL-IMPL:SBCL {1004B5C633}> #<FUNCTION (FLET QUICKLISP-CLIENT::QL :IN QUICKLISP-CLIENT:QUICKLOAD) {1002F233DB}>) [fast-method]
28: ((:METHOD QUICKLISP-CLIENT:QUICKLOAD (T)) "lem" :PROMPT NIL :SILENT NIL :VERBOSE NIL) [fast-method]
29: (QL-DIST::CALL-WITH-CONSISTENT-DISTS #<FUNCTION (LAMBDA NIL :IN QUICKLISP-CLIENT:QUICKLOAD) {1002F1682B}>)
30: (INSTALL-SYSTEM-SCRIPT "lem")
31: (INSTALL-SYSTEM-IF-PROBED "lem")
32: (INSTALL ("cxxxr/cl-lsp"))
33: (SB-INT:SIMPLE-EVAL-IN-LEXENV (APPLY (QUOTE MAIN) ROSWELL:ARGV) #)
34: (SB-INT:SIMPLE-EVAL-IN-LEXENV (ROSWELL:QUIT (APPLY (QUOTE MAIN) ROSWELL:ARGV)) #)
35: (SB-EXT:EVAL-TLF (ROSWELL:QUIT (APPLY (QUOTE MAIN) ROSWELL:ARGV)) NIL NIL)
36: ((LABELS SB-FASL::EVAL-FORM :IN SB-INT:LOAD-AS-SOURCE) (ROSWELL:QUIT (APPLY (QUOTE MAIN) ROSWELL:ARGV)) NIL)
37: (SB-INT:LOAD-AS-SOURCE #<CONCATENATED-STREAM :STREAMS NIL {1002303533}> :VERBOSE NIL :PRINT NIL :CONTEXT "loading")
38: ((LABELS SB-FASL::LOAD-STREAM-1 :IN LOAD) #<CONCATENATED-STREAM :STREAMS NIL {1002303533}> NIL)
39: (SB-FASL::CALL-WITH-LOAD-BINDINGS #<FUNCTION (LABELS SB-FASL::LOAD-STREAM-1 :IN LOAD) {7F40F18CF5CB}> #<CONCATENATED-STREAM :STREAMS NIL {1002303533}> NIL #<CONCATENATED-STREAM :STREAMS NIL {1002303533}>)
40: (LOAD #<CONCATENATED-STREAM :STREAMS NIL {1002303533}> :VERBOSE NIL :PRINT NIL :IF-DOES-NOT-EXIST :ERROR :EXTERNAL-FORMAT :DEFAULT)
41: ((FLET ROSWELL::BODY :IN ROSWELL:SCRIPT) #<SB-SYS:FD-STREAM for "file /usr/local/etc/roswell/install.ros" {1002300933}>)
42: (ROSWELL:SCRIPT "/usr/local/etc/roswell/install.ros" "lem-project/lem" "cxxxr/cl-lsp")
43: (ROSWELL:RUN ((:EVAL "(ros:quicklisp)") (:SCRIPT "/usr/local/etc/roswell/install.ros" "lem-project/lem" "cxxxr/cl-lsp") (:QUIT NIL)))
44: (SB-INT:SIMPLE-EVAL-IN-LEXENV (ROSWELL:RUN (QUOTE ((:EVAL "(ros:quicklisp)") (:SCRIPT "/usr/local/etc/roswell/install.ros" "lem-project/lem" "cxxxr/cl-lsp") (:QUIT NIL)))) #)
45: (EVAL (ROSWELL:RUN (QUOTE ((:EVAL "(ros:quicklisp)") (:SCRIPT "/usr/local/etc/roswell/install.ros" "lem-project/lem" "cxxxr/cl-lsp") (:QUIT NIL)))))
46: (SB-IMPL::PROCESS-EVAL/LOAD-OPTIONS ((:EVAL . "(progn #-ros.init(cl:load "/usr/local/etc/roswell/init.lisp"))") (:EVAL . "(ros:run '((:eval"(ros:quicklisp)")(:script "/usr/local/etc/roswell/install.ros""lem-project/lem""cxxxr/cl-lsp")(:quit ())))")))
47: (SB-IMPL::TOPLEVEL-INIT)
48: ((FLET SB-UNIX::BODY :IN SB-IMPL::START-LISP))
49: ((FLET "WITHOUT-INTERRUPTS-BODY-3" :IN SB-IMPL::START-LISP))
50: (SB-IMPL::%START-LISP)
unhandled condition in --disable-debugger mode, quitting
;
; compilation unit aborted
; caught 2 fatal ERROR conditions
; caught 1 ERROR condition
`
I'd like to work with LSP support on neovim with nvim-lspconfig, I've forked it and add some initial support. However, I found this is not working on neovim.
To test this:
/tmp/minimal.lua
nvim --clean -u /tmp/test.lua a.lisp
, type some lisp codes, see no completion working.nvim --clean -u /tmp/test.lua a.py
, type some python codes, completion is working.Hi,
I see the install process requires roswell. However, by taking a look at the ROS file, nothing of too much value is added by using Roswell -- just executing it as a command-line tool, as far as I see.
If that's the case, I'd strongly suggest to indicate that the project can simply be quickloaded like any other lib, and the server started by executing the appropriate function, and that Roswell is not mandatory for using cl-lsp.
It specifies as mandatory what is really an unnecessary requirement.
Hello,
I'm very excited about the existence of this project, but I'd appreciate a tad more information:
Thanks !
Please add documentation to the README file to describe:
I'm interested in trying cl-lsp with Emacs. Thanks for writing cl-lsp!
I a'm trying to install cl-lsp to have autocompletion for lisp on neovim.
It seems to be what I'm missing to make coc-cl work.
Is there a alternative way to install cl-lsp without Roswell? And can anyone show me?
`Installing from github cxxxr/lem
To load "lem":
Load 1 ASDF system:
lem
; Loading "lem"
..................................................
[package cffi-sys]................................
[package cffi]....................................
..................................................
[package cffi-features]...........................
[package anaphora]................................
[package anaphora-basic]..........................
[package anaphora-symbol].........................
[package inquisitor.encoding.dfa].................
[package inquisitor.encoding.table]...............
..................................................
[package inquisitor.encoding.guess]...............
[package inquisitor.eol]..........................
[package inquisitor.names]........................
[package inquisitor.external-format]..............
[package inquisitor.util].........................
[package inquisitor]..............................
[package cl-fad]..................................
[package path]....................................
[package metap]...................................
[package cl-singleton-mixin]......................
[package lem.history].............................
[package lem].....................................
[package lem-interface]...........................
[package lem-user]................................
[package lem-restart].............................
..................................................
[package lem.popup-window]........................
[package lem.completion-mode].....................
[package lem.prompt-window].......................
[package lem.tmlanguage]..........................
[package lem.button]..............................
[package lem.loading-spinner].....................
[package lem.listener-mode].......................
[package lem.universal-argument]..................
[package lem.kbdmacro]............................
[package lem.isearch].............................
[package lem.show-paren]..........................
[package lem.menu-mode]...........................
[package lem.list-buffers]........................
[package lem.line-numbers]........................
[package lem.sourcelist]..........................
[package lem.grep]................................
[package lem.go-back].............................
[package lem.language-mode].......................
[package lem.language-mode-tools].................
[package lem.gtags]...............................
[package lem.directory-mode]......................
[package lem.abbrev]..............................
[package lem.rectangle]...........................
[package lem.auto-save]...........................
[package lem.tabbar]..............................
[package lem-frame-multiplexer]...................
[package trivial-with-current-source-form]........
[package esrap]...................................
[package lem-vi-mode.core]........................
[package lem-vi-mode.word]........................
[package lem-vi-mode.visual]......................
[package lem-vi-mode.jump-motions]................
[package lem-vi-mode.commands]....................
[package lem-vi-mode.ex-core].....................
[package lem-vi-mode.ex-parser]...................
[package lem-vi-mode.ex-command]..................
[package lem-vi-mode.ex]..........................
[package lem-vi-mode.binds].......................
[package lem-vi-mode].............................
[package async-process]...........................
[package lem-process].............................
[package lem-utils/socket]........................
[package lem-lisp-mode.errors]....................
[package lem-lisp-mode.swank-protocol]............
[package lem-lisp-mode]...........................
[package lem-lisp-mode.autodoc]...................
[package lem-lisp-mode.paren-coloring]............
[package lem-lisp-mode.misc-commands].............
[package lem-lisp-mode.package-inferred-system]...
[package lem-go-mode].............................
[package lem-c-mode.grammer]......................
[package lem-c-mode]..............................
[package lem-xml-mode]............................
[package lem-html-mode]...........................
[package lem-python-mode].........................
[package lem-python-mode.run-python]..............
[package lem-posix-shell-mode]....................
[package lem-markdown-mode].......................
[package lem-js-mode].............................
[package lem-js-mode.eslint]......................
[package lem-css-mode]............................
[package lem-rust-mode]...........................
[package lem-paredit-mode]........................
[package lem-nim-mode]............................
[package lem-scheme-syntax.data]..................
[package lem-scheme-syntax.indent]................
[package lem-scheme-syntax.syntax-table]..........
[package lem-scheme-syntax.misc]..................
[package lem-scheme-syntax.parse].................
[package lem-scheme-mode.errors]..................
[package lem-scheme-mode.swank-protocol]..........
[package lem-scheme-mode].........................
[package lem-patch-mode]..........................
[package lem-yaml-mode]...........................
[package lem-review-mode].........................
[package lem-asciidoc-mode].......................
[package lem-dart-mode]...........................
[package lem-scala-mode]..........................
[package lem-dot-mode]............................
[package lem-java-mode]...........................
[package lem-haskell-mode]........................
[package lem-ocaml-mode]..........................
[package lem-asm-mode]............................
[package lem-makefile-mode].......................
[package lem-shell-mode]..........................
[package lem-sql-mode]............................
[package cl+ssl/config]...........................
[package flexi-streams]...........................
..................................................
..................................................
..................................................
[package trivial-garbage].........................
[package cl+ssl]..................................
[package static-vectors]..........................
[package fast-io].................................
[package trivial-utf-8]...........................
[package trivial-utf-8]...........................
[package jsonrpc/transport/tcp]...................
[package lem-lsp-mode/project]....................
[package lem-lsp-mode/utils]......................
[package lem-lsp-mode/async-process-stream].......
[package lem-lsp-mode/lem-stdio-transport]........
[package lem-lsp-mode/client].....................
[package lem-lsp-mode/request]....................
[package lem-lsp-mode/context-menu]...............
[package lem-lsp-mode/lsp-mode]............
[1/3] System 'lem' found. Loading the system..
[2/3] Processing build-hook..
[3/3] Attempting to install the scripts in roswell/ subdirectory of the system...
Found 4 scripts: lem lem-ncurses-ccl lem-ncurses lem-rpc
/home/trdat/.roswell/bin/lem
/home/trdat/.roswell/bin/lem-ncurses-ccl
/home/trdat/.roswell/bin/lem-ncurses
/home/trdat/.roswell/bin/lem-rpc
Installing from github cxxxr/cl-lsp
To load "cl-lsp":
Load 1 ASDF system:
cl-lsp
; Loading "cl-lsp"
[package cl-lsp/protocol].........................
[package cl-lsp/protocol-util]....................
[package cl-lsp/formatting].......................
[package cl-lsp/server]...........................
[package cl-lsp/text-document-controller].........
[package cl-lsp/methods]..........................
[package cl-lsp/methods/lifetime].................
[package cl-lsp/methods/workspace]................
[package cl-lsp/main]
; compiling file "/home/trdat/.roswell/local-projects/cxxxr/cl-lsp/src/jsonrpc-patch.lisp" (written 20 FEB 2022 03:56:37 PM):
; compiling (IN-PACKAGE :JSONRPC/TRANSPORT/STDIO)
; compiling (DEFMETHOD SEND-MESSAGE-USING-TRANSPORT ...)
; compiling (DEFUN CHARACTER-SIZE-IN-OCTETS ...)
; compiling (DEFMETHOD RECEIVE-MESSAGE-USING-TRANSPORT ...)
; wrote /root/.cache/common-lisp/sbcl-2.0.4-linux-x64/home/trdat/.roswell/local-projects/cxxxr/cl-lsp/src/jsonrpc-patch-tmpMAMO3XGR.fasl
; compilation finished in 0:00:00.008
; compiling file "/home/trdat/.roswell/local-projects/cxxxr/cl-lsp/src/defpackage.lisp" (written 20 FEB 2022 03:56:37 PM):
; compiling (DEFPACKAGE :CL-LSP/DEFPACKAGE ...)
; compiling (IN-PACKAGE :CL-LSP/DEFPACKAGE)
; compiling (DEFPARAMETER DEFPACKAGE-OPTIONS ...)
; compiling (DEFUN FILTER-ANSI-OPTIONS ...)
; compiling (DEFUN FILTER-NON-ANSI-OPTIONS ...)
; compiling (DEFUN EXPAND-NON-ANSI-OPTIONS ...)
; compiling (DEFUN TRANSLATE-DEFPACKAGE ...)
; compiling (DEFMACRO DEFPACKAGE ...)
; wrote /root/.cache/common-lisp/sbcl-2.0.4-linux-x64/home/trdat/.roswell/local-projects/cxxxr/cl-lsp/src/defpackage-tmp4CBIDXQU.fasl
; compilation finished in 0:00:00.009
; compiling file "/home/trdat/.roswell/local-projects/cxxxr/cl-lsp/src/editor.lisp" (written 20 FEB 2022 03:56:37 PM):
; compiling (CL-LSP/DEFPACKAGE:DEFPACKAGE :CL-LSP/EDITOR ...)
; compiling (IN-PACKAGE :CL-LSP/EDITOR)
; compiling (DEFGENERIC OPEN-FILE-CONTENTS-USING-EDITOR ...)
; compiling (DEFGENERIC CLOSE-FILE-CONTENTS-USING-EDITOR ...)
; compiling (DEFGENERIC REPLACE-FILE-CONTENTS-USING-EDITOR ...)
; compiling (DEFGENERIC EDIT-FILE-CONTENTS-USING-EDITOR ...)
; compiling (DEFCLASS EDITOR ...)
; compiling (DEFCLASS LEM ...)
; compiling (DEFSTRUCT FILE-CONTENTS-POSITION ...)
; compiling (DEFSTRUCT FILE-CONTENTS-RANGE ...)
; compiling (DEFMETHOD OPEN-FILE-CONTENTS-USING-EDITOR ...)
; compiling (DEFMETHOD CLOSE-FILE-CONTENTS-USING-EDITOR ...)
; compiling (DEFUN MOVE-TO-POSITION ...)
; compiling (DEFMETHOD REPLACE-FILE-CONTENTS-USING-EDITOR ...)
; compiling (DEFMETHOD EDIT-FILE-CONTENTS-USING-EDITOR ...)
; compiling (DEFVAR EDITOR ...)
; compiling (DEFUN OPEN-FILE-CONTENTS ...)
; compiling (DEFUN CLOSE-FILE-CONTENTS ...)
; compiling (DEFUN REPLACE-FILE-CONTENTS ...)
; compiling (DEFUN EDIT-FILE-CONTENTS ...)
; wrote /root/.cache/common-lisp/sbcl-2.0.4-linux-x64/home/trdat/.roswell/local-projects/cxxxr/cl-lsp/src/editor-tmp4M6Z7O9T.fasl
; compilation finished in 0:00:00.025
; compiling file "/home/trdat/.roswell/local-projects/cxxxr/cl-lsp/src/config.lisp" (written 20 FEB 2022 03:56:37 PM):
; compiling (CL-LSP/DEFPACKAGE:DEFPACKAGE :CL-LSP/CONFIG ...)
; compiling (IN-PACKAGE :CL-LSP/CONFIG)
; compiling (DEFCONSTANT +USER-PACKAGE-NAME+ ...)
; compiling (DEFPARAMETER CONFIG-PATHNAME ...)
; compiling (DEFVAR ENVIRONMENT ...)
; compiling (DEFVAR CACHE ...)
; compiling (DEFSTRUCT CACHE ...)
; compiling (DEFUN ALIVE-CACHE-P ...)
; compiling (DEFUN UPDATE-CACHE ...)
; compiling (DEFUN GET-CACHED-VALUE ...)
; compiling (DEFUN CONFIG-PLIST-WITHOUT-CACHE ...)
; compiling (DEFUN CONFIG-PLIST ...)
; compiling (DEFUN CONFIG ...)
; compiling (DEFMACRO WITH-ENVIRONMENT ...)
; wrote /root/.cache/common-lisp/sbcl-2.0.4-linux-x64/home/trdat/.roswell/local-projects/cxxxr/cl-lsp/src/config-tmp3RKO0O0S.fasl
; compilation finished in 0:00:00.009
; compiling file "/home/trdat/.roswell/local-projects/cxxxr/cl-lsp/src/logger.lisp" (written 20 FEB 2022 03:56:37 PM):
; compiling (CL-LSP/DEFPACKAGE:DEFPACKAGE :CL-LSP/LOGGER ...)
; compiling (IN-PACKAGE :CL-LSP/LOGGER)
; compiling (DEFVAR LOGGER-STREAM)
; compiling (DEFUN LOGGER-ENABLED-P ...)
; compiling (LET (#) ...)
; compiling (DEFUN CALL-WITH-LOG-FILE ...)
; compiling (DEFMACRO WITH-LOG-FILE ...)
; compiling (DEFMACRO WITH-LOG-STREAM ...)
; wrote /root/.cache/common-lisp/sbcl-2.0.4-linux-x64/home/trdat/.roswell/local-projects/cxxxr/cl-lsp/src/logger-tmpJNADND61.fasl
; compilation finished in 0:00:00.005
; compiling file "/home/trdat/.roswell/local-projects/cxxxr/cl-lsp/src/gray-streams.lisp" (written 20 FEB 2022 03:56:37 PM):
; compiling (CL-LSP/DEFPACKAGE:DEFPACKAGE :CL-LSP/GRAY-STREAMS ...)
; compiling (IN-PACKAGE :CL-LSP/GRAY-STREAMS)
; compiling (DEFCLASS LSP-OUTPUT-STREAM ...)
; compiling (DEFMETHOD STREAM-WRITE-CHAR ...)
; compiling (DEFMETHOD STREAM-WRITE-STRING ...)
; compiling (DEFMETHOD STREAM-LINE-COLUMN ...)
; compiling (DEFMETHOD STREAM-FINISH-OUTPUT ...)
; compiling (DEFMETHOD STREAM-FORCE-OUTPUT ...)
; compiling (DEFMETHOD STREAM-FRESH-LINE ...)
; wrote /root/.cache/common-lisp/sbcl-2.0.4-linux-x64/home/trdat/.roswell/local-projects/cxxxr/cl-lsp/src/gray-streams-tmpKEV7GFR4.fasl
; compilation finished in 0:00:00.010
; compiling file "/home/trdat/.roswell/local-projects/cxxxr/cl-lsp/src/swank.lisp" (written 20 FEB 2022 03:56:37 PM):
; compiling (CL-LSP/DEFPACKAGE:DEFPACKAGE :CL-LSP/SWANK ...)
; compiling (IN-PACKAGE :CL-LSP/SWANK)
; compiling (DEFVAR FUZZY-COMPLETIONS ...)
; compiling (DEFMACRO WITH-SWANK ...)
; compiling (DEFUN SWANK-INIT ...)
; compiling (DEFUN FUZZY-COMPLETIONS ...)
; compiling (DEFUN DESCRIBE-SYMBOL ...)
; compiling (DEFUN XREFS ...)
; compiling (DEFUN OPERATOR-ARGLIST ...)
; compiling (DEFUN FIND-DEFINITIONS ...)
; compiling (DEFUN SWANK-APROPOS-LIST ...)
; compiling (DEFUN SWANK-COMPILE-FILE ...)
; wrote /root/.cache/common-lisp/sbcl-2.0.4-linux-x64/home/trdat/.roswell/local-projects/cxxxr/cl-lsp/src/swank-tmp13EJYBWB.fasl
; compilation finished in 0:00:00.006
; compiling file "/home/trdat/.roswell/local-projects/cxxxr/cl-lsp/src/slime.lisp" (written 20 FEB 2022 03:56:37 PM):
; compiling (CL-LSP/DEFPACKAGE:DEFPACKAGE :CL-LSP/SLIME ...)
; compiling (IN-PACKAGE :CL-LSP/SLIME)
; compiling (DEFUN SYMBOL-STRING-AT-POINT* ...)
; compiling (DEFUN BEGINNING-OF-DEFUN-POINT ...)
; compiling (DEFUN BEGINNING-OF-DEFUN ...)
; compiling (DEFUN FORM-STRING ...)
; compiling (DEFUN MAP-BUFFER-SYMBOLS ...)
; compiling (DEFUN SEARCH-BUFFER-PACKAGE ...)
; compiling (DEFUN COMPILATION-NOTES ...)
; wrote /root/.cache/common-lisp/sbcl-2.0.4-linux-x64/home/trdat/.roswell/local-projects/cxxxr/cl-lsp/src/slime-tmp93YER753.fasl
; compilation finished in 0:00:00.070
; compiling file "/home/trdat/.roswell/local-projects/cxxxr/cl-lsp/src/protocol.lisp" (written 20 FEB 2022 03:56:37 PM):
; compiling (CL-LSP/DEFPACKAGE:DEFPACKAGE :CL-LSP/PROTOCOL ...)[1/3] System 'cl-lsp' found. Loading the system..
; file: /home/trdat/.roswell/local-projects/cxxxr/cl-lsp/src/protocol.lisp
; in: CL-LSP/DEFPACKAGE:DEFPACKAGE :CL-LSP/PROTOCOL
; (CL-LSP/DEFPACKAGE:DEFPACKAGE :CL-LSP/PROTOCOL
; (:USE :CL)
; (:EXPORT :CONVERT-FROM-HASH-TABLE :CONVERT-TO-HASH-TABLE))
; --> PROGN DEFPACKAGE EVAL-WHEN
; ==>
; (SB-IMPL::%DEFPACKAGE "CL-LSP/PROTOCOL" 'NIL 'NIL 'NIL 'NIL '("CL") 'NIL 'NIL
; '("CONVERT-FROM-HASH-TABLE" "CONVERT-TO-HASH-TABLE")
; '("CL-LSP/PROTOCOL") 'NIL ...)
;
; caught WARNING:
; CL-LSP/PROTOCOL also exports the following symbols:
; (CL-LSP/PROTOCOL:|resolveProvider| CL-LSP/PROTOCOL:|documentSelector|
; CL-LSP/PROTOCOL:|end| CL-LSP/PROTOCOL:|CodeLensParams|
; CL-LSP/PROTOCOL:|text| CL-LSP/PROTOCOL:|executeCommandProvider|
; CL-LSP/PROTOCOL:|Unregistration| CL-LSP/PROTOCOL:|processId|
; CL-LSP/PROTOCOL:|DiagnosticSeverity.Hint|
; CL-LSP/PROTOCOL:|SymbolKind.Boolean| CL-LSP/PROTOCOL:|message|
; CL-LSP/PROTOCOL:|TextDocumentChangeRegistrationOptions|
; CL-LSP/PROTOCOL:|documentFormattingProvider| CL-LSP/PROTOCOL:|workspace|
; CL-LSP/PROTOCOL:|WorkspaceEdit| CL-LSP/PROTOCOL:|openClose|
; CL-LSP/PROTOCOL:|DocumentLinkParams| CL-LSP/PROTOCOL:|label|
; CL-LSP/PROTOCOL:|tabSize| CL-LSP/PROTOCOL:|severity|
; CL-LSP/PROTOCOL:|InitializeResult| CL-LSP/PROTOCOL:|onTypeFormatting|
; CL-LSP/PROTOCOL:|CompletionItem| CL-LSP/PROTOCOL:|MessageType.Error|
; CL-LSP/PROTOCOL:|version| CL-LSP/PROTOCOL:|parameters|
; CL-LSP/PROTOCOL:|name| CL-LSP/PROTOCOL:|documentRangeFormattingProvider|
; CL-LSP/PROTOCOL:|rootPath| CL-LSP/PROTOCOL:|capabilities|
; CL-LSP/PROTOCOL:|definitionProvider| CL-LSP/PROTOCOL:|SymbolKind.Constant|
; CL-LSP/PROTOCOL:|MessageType.Log| CL-LSP/PROTOCOL:|language|
; CL-LSP/PROTOCOL:|PublishDiagnosticsParams|
; CL-LSP/PROTOCOL:|SymbolKind.Field| CL-LSP/PROTOCOL:|ParameterInformation|
; CL-LSP/PROTOCOL:|symbol| CL-LSP/PROTOCOL:|DidCloseTextDocumentParams|
; CL-LSP/PROTOCOL:|rangeLength| CL-LSP/PROTOCOL:|DocumentHighlight|
; CL-LSP/PROTOCOL:|TextDocumentSyncKind.None|
; CL-LSP/PROTOCOL:|InitializeError| CL-LSP/PROTOCOL:|SymbolKind.Module|
; CL-LSP/PROTOCOL:|MessageType.Warning|
; CL-LSP/PROTOCOL:|TextDocumentPositionParams|
; CL-LSP/PROTOCOL:|ReferenceContext| CL-LSP/PROTOCOL:|CodeLens|
; CL-LSP/PROTOCOL:|newName| CL-LSP/PROTOCOL:|firstTriggerCharacter|
; CL-LSP/PROTOCOL:|FormattingOptions| CL-LSP/PROTOCOL:|codeAction|
; CL-LSP/PROTOCOL:|DocumentFormattingParams| CL-LSP/PROTOCOL:|ch|
; CL-LSP/PROTOCOL:|containerName| CL-LSP/PROTOCOL:|insertSpaces|
; CL-LSP/PROTOCOL:|retry| CL-LSP/PROTOCOL:|triggerCharacters|
; CL-LSP/PROTOCOL:|DidSaveTextDocumentParams|
; CL-LSP/PROTOCOL:|documentSymbolProvider| CL-LSP/PROTOCOL:|code|
; CL-LSP/PROTOCOL:|renameProvider| CL-LSP/PROTOCOL:|data|
; CL-LSP/PROTOCOL:|TextDocumentIdentifier|
; CL-LSP/PROTOCOL:|DiagnosticSeverity.Information|
; CL-LSP/PROTOCOL:|TextDocumentItem| CL-LSP/PROTOCOL:|insertText|
; CL-LSP/PROTOCOL:|documentHighlightProvider| CL-LSP/PROTOCOL:|location|
; CL-LSP/PROTOCOL:|documentOnTypeFormattingProvider|
; CL-LSP/PROTOCOL:|codeLens| CL-LSP/PROTOCOL:|DocumentSymbolParams|
; CL-LSP/PROTOCOL:|rangeFormatting| CL-LSP/PROTOCOL:|signatureHelp|
; CL-LSP/PROTOCOL:|kind| CL-LSP/PROTOCOL:|actions|
; CL-LSP/PROTOCOL:|SignatureHelp| CL-LSP/PROTOCOL:|references|
; CL-LSP/PROTOCOL:|source| CL-LSP/PROTOCOL:|SymbolKind.Variable|
; CL-LSP/PROTOCOL:|sortText| CL-LSP/PROTOCOL:|DocumentFilter|
; CL-LSP/PROTOCOL:|DocumentRangeFormattingParams| CL-LSP/PROTOCOL:|Diagnostic|
; CL-LSP/PROTOCOL:|SignatureInformation| CL-LSP/PROTOCOL:|TextDocumentEdit|
; CL-LSP/PROTOCOL:|ServerCapabilities| CL-LSP/PROTOCOL:|documentChanges|
; CL-LSP/PROTOCOL:|scheme| CL-LSP/PROTOCOL:|DocumentOnTypeFormattingParams|
; CL-LSP/PROTOCOL:|referencesProvider| CL-LSP/PROTOCOL:|Location|
; CL-LSP/PROTOCOL:|definition| CL-LSP/PROTOCOL:|DocumentHighlightKind.Read|
; CL-LSP/PROTOCOL:|SymbolKind.Namespace| CL-LSP/PROTOCOL:|executeCommand|
; CL-LSP/PROTOCOL:|TextDocumentRegistrationOptions|
; CL-LSP/PROTOCOL:|includeText| CL-LSP/PROTOCOL:|TextDocumentSyncOptions|
; CL-LSP/PROTOCOL:|character| CL-LSP/PROTOCOL:|filterText|
; CL-LSP/PROTOCOL:|MessageActionItem| CL-LSP/PROTOCOL:|edits|
; CL-LSP/PROTOCOL:|SymbolKind.Function| CL-LSP/PROTOCOL:|includeDeclaration|
; CL-LSP/PROTOCOL:|languageId| CL-LSP/PROTOCOL:|registerOptions|
; CL-LSP/PROTOCOL:|InitializeParams| CL-LSP/PROTOCOL:|DocumentLinkOptions|
; CL-LSP/PROTOCOL:|diagnostics| CL-LSP/PROTOCOL:|RegistrationParams|
; CL-LSP/PROTOCOL:|ExecuteCommandOptions|
; CL-LSP/PROTOCOL:|TextDocumentContentChangeEvent|
; CL-LSP/PROTOCOL:|SymbolKind.Class| CL-LSP/PROTOCOL:|syncKind|
; CL-LSP/PROTOCOL:|SymbolKind.Constructor| CL-LSP/PROTOCOL:|contentChanges|
; CL-LSP/PROTOCOL:|additionalTextEdits| CL-LSP/PROTOCOL:|query|
; CL-LSP/PROTOCOL:|textDocument| CL-LSP/PROTOCOL:|contents|
; CL-LSP/PROTOCOL:|CompletionList| CL-LSP/PROTOCOL:|signatures|
; CL-LSP/PROTOCOL:|changes| CL-LSP/PROTOCOL:|DocumentLink|
; CL-LSP/PROTOCOL:|initializationOptions| CL-LSP/PROTOCOL:|Position|
; CL-LSP/PROTOCOL:|CodeLensOptions| CL-LSP/PROTOCOL:|SymbolKind.Number|
; CL-LSP/PROTOCOL:|ReferenceParams| CL-LSP/PROTOCOL:|ShowMessageRequestParams|
; CL-LSP/PROTOCOL:|activeSignature| CL-LSP/PROTOCOL:|moreTriggerCharacter|
; CL-LSP/PROTOCOL:|documentation| CL-LSP/PROTOCOL:|completionProvider|
; CL-LSP/PROTOCOL:|DiagnosticSeverity.Warning|
; CL-LSP/PROTOCOL:|DidChangeTextDocumentParams|
; CL-LSP/PROTOCOL:|MessageType.Info| CL-LSP/PROTOCOL:|options|
; CL-LSP/PROTOCOL:|SymbolKind.Array|
; CL-LSP/PROTOCOL:|TextDocumentSyncKind.Full| CL-LSP/PROTOCOL:|type|
; CL-LSP/PROTOCOL:|uri| CL-LSP/PROTOCOL:|SymbolKind.Package|
; CL-LSP/PROTOCOL:|DocumentHighlightKind.Write|
; CL-LSP/PROTOCOL:|DocumentHighlightKind.Text| CL-LSP/PROTOCOL:|hover|
; CL-LSP/PROTOCOL:|experimental| CL-LSP/PROTOCOL:|WorkspaceClientCapabilites|
; CL-LSP/PROTOCOL:|trace| CL-LSP/PROTOCOL:|SymbolKind.Interface|
; CL-LSP/PROTOCOL:|DiagnosticSeverity.Error| CL-LSP/PROTOCOL:|RenameParams|
; CL-LSP/PROTOCOL:|Command| CL-LSP/PROTOCOL:|Range|
; CL-LSP/PROTOCOL:|ShowMessageParams| CL-LSP/PROTOCOL:|completion|
; CL-LSP/PROTOCOL:|context| CL-LSP/PROTOCOL:|save|
; CL-LSP/PROTOCOL:|TextDocumentSyncKind.Incremental|
; CL-LSP/PROTOCOL:|isIncomplete| CL-LSP/PROTOCOL:|command|
; CL-LSP/PROTOCOL:|documentHighlight| CL-LSP/PROTOCOL:|activeParameter|
; CL-LSP/PROTOCOL:|id| CL-LSP/PROTOCOL:|pattern|
; CL-LSP/PROTOCOL:|SymbolKind.Property| CL-LSP/PROTOCOL:|textDocumentSync|
; CL-LSP/PROTOCOL:|WorkspaceSymbolParams|
; CL-LSP/PROTOCOL:|documentLinkProvider| CL-LSP/PROTOCOL:|rename|
; CL-LSP/PROTOCOL:|Registration|
; CL-LSP/PROTOCOL:|DocumentOnTypeFormattingOptions|
; CL-LSP/PROTOCOL:|synchronization| CL-LSP/PROTOCOL:|method|
; CL-LSP/PROTOCOL:|range| CL-LSP/PROTOCOL:|SymbolInformation|
; CL-LSP/PROTOCOL:|SaveOptions| CL-LSP/PROTOCOL:|commands|
; CL-LSP/PROTOCOL:|codeLensProvider| CL-LSP/PROTOCOL:|registrations|
; CL-LSP/PROTOCOL:|didChangeConfiguration| CL-LSP/PROTOCOL:|rootUri|
; CL-LSP/PROTOCOL:|unregisterations| CL-LSP/PROTOCOL:|documentSymbol|
; CL-LSP/PROTOCOL:|change| CL-LSP/PROTOCOL:|signatureHelpProvider|
; CL-LSP/PROTOCOL:|hoverProvider| CL-LSP/PROTOCOL:|Hover|
; CL-LSP/PROTOCOL:|start| CL-LSP/PROTOCOL:|workspaceSymbolProvider|
; CL-LSP/PROTOCOL:|willSave| CL-LSP/PROTOCOL:|position|
; CL-LSP/PROTOCOL:|arguments| CL-LSP/PROTOCOL:|textEdit|
; CL-LSP/PROTOCOL:|items| CL-LSP/PROTOCOL:|SymbolKind.File|
; CL-LSP/PROTOCOL:|line| CL-LSP/PROTOCOL:|title|
; CL-LSP/PROTOCOL:|SymbolKind.Enum|
; CL-LSP/PROTOCOL:|DidOpenTextDocumentParams|
; CL-LSP/PROTOCOL:|CompletionOptions| CL-LSP/PROTOCOL:|SymbolKind.Method|
; CL-LSP/PROTOCOL:|formatting| CL-LSP/PROTOCOL:|ClientCapabilities|
; CL-LSP/PROTOCOL:|newText| CL-LSP/PROTOCOL:|insertTextFormat|
; CL-LSP/PROTOCOL:|SignatureHelpOptions| CL-LSP/PROTOCOL:|applyEdit|
; CL-LSP/PROTOCOL:|target| CL-LSP/PROTOCOL:|SymbolKind.String|
; CL-LSP/PROTOCOL:|codeActionProvider| CL-LSP/PROTOCOL:|UnregistrationParams|
; CL-LSP/PROTOCOL:|detail| CL-LSP/PROTOCOL:|TextDocumentClientCapabilities|
; CL-LSP/PROTOCOL:|documentLink|
; CL-LSP/PROTOCOL:|VersionedTextDocumentIdentifier| CL-LSP/PROTOCOL:|TextEdit|
; CL-LSP/PROTOCOL:|didChangeWatchedFiles| CL-LSP/PROTOCOL:|willSaveWaitUntil|
; CL-LSP/PROTOCOL:|LogMessageParams|)
; See also:
; The ANSI Standard, Macro DEFPACKAGE
; The SBCL Manual, Variable SB-EXT:ON-PACKAGE-VARIANCE
; compiling (IN-PACKAGE :CL-LSP/PROTOCOL)
; compiling (DEFVAR NULL-SLOT-VALUE ...)
; compiling (DEFVAR PROTOCOL-SYMBOLS ...)
; compiling (DEFCLASS PROTOCOL ...)
; compiling (DEFMACRO DEFINE-INTERFACE ...)
; compiling (DEFTYPE |DocumentUri| ...)
; compiling (DEFINE-INTERFACE |Position| ...)
; compiling (DEFINE-INTERFACE |Range| ...)
; compiling (DEFINE-INTERFACE |Location| ...)
; compiling (DEFINE-INTERFACE |Diagnostic| ...)
; compiling (EXPORT (DEFPARAMETER |DiagnosticSeverity.Error| ...))
; compiling (EXPORT (DEFPARAMETER |DiagnosticSeverity.Warning| ...))
; compiling (EXPORT (DEFPARAMETER |DiagnosticSeverity.Information| ...))
; compiling (EXPORT (DEFPARAMETER |DiagnosticSeverity.Hint| ...))
; compiling (DEFINE-INTERFACE |Command| ...)
; compiling (DEFINE-INTERFACE |TextEdit| ...)
; compiling (DEFINE-INTERFACE |TextDocumentEdit| ...)
; compiling (DEFINE-INTERFACE |WorkspaceEdit| ...)
; compiling (DEFINE-INTERFACE |TextDocumentIdentifier| ...)
; compiling (DEFINE-INTERFACE |TextDocumentItem| ...)
; compiling (DEFINE-INTERFACE |VersionedTextDocumentIdentifier| ...)
; compiling (DEFINE-INTERFACE |TextDocumentPositionParams| ...)
; compiling (DEFINE-INTERFACE |DocumentFilter| ...)
; compiling (DEFTYPE |DocumentSelector| ...)
; compiling (DEFINE-INTERFACE |InitializeParams| ...)
; compiling (DEFINE-INTERFACE |WorkspaceClientCapabilites| ...)
; compiling (DEFINE-INTERFACE |TextDocumentClientCapabilities| ...)
; compiling (DEFINE-INTERFACE |ClientCapabilities| ...)
; compiling (DEFINE-INTERFACE |InitializeResult| ...)
; compiling (DEFINE-INTERFACE |InitializeError| ...)
; compiling (EXPORT (DEFPARAMETER |TextDocumentSyncKind.None| ...))
; compiling (EXPORT (DEFPARAMETER |TextDocumentSyncKind.Full| ...))
; compiling (EXPORT (DEFPARAMETER |TextDocumentSyncKind.Incremental| ...))
; compiling (DEFINE-INTERFACE |CompletionOptions| ...)
; compiling (DEFINE-INTERFACE |SignatureHelpOptions| ...)
; compiling (DEFINE-INTERFACE |CodeLensOptions| ...)
; compiling (DEFINE-INTERFACE |DocumentOnTypeFormattingOptions| ...)
; compiling (DEFINE-INTERFACE |DocumentLinkOptions| ...)
; compiling (DEFINE-INTERFACE |ExecuteCommandOptions| ...)
; compiling (DEFINE-INTERFACE |SaveOptions| ...)
; compiling (DEFINE-INTERFACE |TextDocumentSyncOptions| ...)
; compiling (DEFINE-INTERFACE |ServerCapabilities| ...)
; compiling (DEFINE-INTERFACE |ShowMessageParams| ...)
; compiling (EXPORT (DEFPARAMETER |MessageType.Error| ...))
; compiling (EXPORT (DEFPARAMETER |MessageType.Warning| ...))
; compiling (EXPORT (DEFPARAMETER |MessageType.Info| ...))
; compiling (EXPORT (DEFPARAMETER |MessageType.Log| ...))
; compiling (DEFINE-INTERFACE |ShowMessageRequestParams| ...)
; compiling (DEFINE-INTERFACE |MessageActionItem| ...)
; compiling (DEFINE-INTERFACE |LogMessageParams| ...)
; compiling (DEFINE-INTERFACE |Registration| ...)
; compiling (DEFINE-INTERFACE |RegistrationParams| ...)
; compiling (DEFINE-INTERFACE |TextDocumentRegistrationOptions| ...)
; compiling (DEFINE-INTERFACE |TextDocumentChangeRegistrationOptions| ...)
; compiling (DEFINE-INTERFACE |Unregistration| ...)
; compiling (DEFINE-INTERFACE |UnregistrationParams| ...)
; compiling (DEFINE-INTERFACE |DidOpenTextDocumentParams| ...)
; compiling (DEFINE-INTERFACE |DidChangeTextDocumentParams| ...)
; compiling (DEFINE-INTERFACE |TextDocumentContentChangeEvent| ...)
; compiling (DEFINE-INTERFACE |DidSaveTextDocumentParams| ...)
; compiling (DEFINE-INTERFACE |DidCloseTextDocumentParams| ...)
; compiling (DEFINE-INTERFACE |PublishDiagnosticsParams| ...)
; compiling (DEFINE-INTERFACE |CompletionList| ...)
; compiling (DEFINE-INTERFACE |CompletionItem| ...)
; compiling (DEFINE-INTERFACE |Hover| ...)
; compiling (DEFINE-INTERFACE |SignatureHelp| ...)
; compiling (DEFINE-INTERFACE |SignatureInformation| ...)
; compiling (DEFINE-INTERFACE |ParameterInformation| ...)
; compiling (DEFINE-INTERFACE |ReferenceParams| ...)
; compiling (DEFINE-INTERFACE |ReferenceContext| ...)
; compiling (DEFINE-INTERFACE |DocumentHighlight| ...)
; compiling (EXPORT (DEFPARAMETER |DocumentHighlightKind.Text| ...))
; compiling (EXPORT (DEFPARAMETER |DocumentHighlightKind.Read| ...))
; compiling (EXPORT (DEFPARAMETER |DocumentHighlightKind.Write| ...))
; compiling (DEFINE-INTERFACE |DocumentSymbolParams| ...)
; compiling (DEFINE-INTERFACE |SymbolInformation| ...)
; compiling (EXPORT (DEFPARAMETER |SymbolKind.File| ...))
; compiling (EXPORT (DEFPARAMETER |SymbolKind.Module| ...))
; compiling (EXPORT (DEFPARAMETER |SymbolKind.Namespace| ...))
; compiling (EXPORT (DEFPARAMETER |SymbolKind.Package| ...))
; compiling (EXPORT (DEFPARAMETER |SymbolKind.Class| ...))
; compiling (EXPORT (DEFPARAMETER |SymbolKind.Method| ...))
; compiling (EXPORT (DEFPARAMETER |SymbolKind.Property| ...))
; compiling (EXPORT (DEFPARAMETER |SymbolKind.Field| ...))
; compiling (EXPORT (DEFPARAMETER |SymbolKind.Constructor| ...))
; compiling (EXPORT (DEFPARAMETER |SymbolKind.Enum| ...))
; compiling (EXPORT (DEFPARAMETER |SymbolKind.Interface| ...))
; compiling (EXPORT (DEFPARAMETER |SymbolKind.Function| ...))
; compiling (EXPORT (DEFPARAMETER |SymbolKind.Variable| ...))
; compiling (EXPORT (DEFPARAMETER |SymbolKind.Constant| ...))
; compiling (EXPORT (DEFPARAMETER |SymbolKind.String| ...))
; compiling (EXPORT (DEFPARAMETER |SymbolKind.Number| ...))
; compiling (EXPORT (DEFPARAMETER |SymbolKind.Boolean| ...))
; compiling (EXPORT (DEFPARAMETER |SymbolKind.Array| ...))
; compiling (DEFINE-INTERFACE |WorkspaceSymbolParams| ...)
; compiling (DEFINE-INTERFACE |CodeLensParams| ...)
; compiling (DEFINE-INTERFACE |CodeLens| ...)
; compiling (DEFINE-INTERFACE |DocumentLinkParams| ...)
; compiling (DEFINE-INTERFACE |DocumentLink| ...)
; compiling (DEFINE-INTERFACE |DocumentFormattingParams| ...)
; compiling (DEFINE-INTERFACE |FormattingOptions| ...)
; compiling (DEFINE-INTERFACE |DocumentRangeFormattingParams| ...)
; compiling (DEFINE-INTERFACE |DocumentOnTypeFormattingParams| ...)
; compiling (DEFINE-INTERFACE |RenameParams| ...)
; compiling (DEFUN PROTOCOL-SYMBOL-P ...)
; compiling (DEFUN PROTOCOL-LIST-P ...)
; compiling (DEFUN MAYBE-PROTOCOL-TYPE ...)
; compiling (DEFGENERIC CONVERT-FROM-HASH-TABLE ...)
; compiling (DEFGENERIC CONVERT-TO-HASH-TABLE ...)
; compiling (DEFMETHOD CONVERT-TO-HASH-TABLE ...)
; wrote /root/.cache/common-lisp/sbcl-2.0.4-linux-x64/home/trdat/.roswell/local-projects/cxxxr/cl-lsp/src/protocol-tmpB50UYUD7.fasl
; compilation finished in 0:00:00.044
;
; compilation unit aborted
; caught 1 fatal ERROR condition
; caught 1 WARNING condition
[2/3] Processing build-hook..
[3/3] Attempting to install the scripts in roswell/ subdirectory of the system...
Found 1 scripts: cl-lsp
/home/trdat/.roswell/bin/cl-lsp
`
環境
windows 10
vim 8.2
vim-lsp/vim-lsp-settings
roswell 20.06.14.107(NO-GIT-REVISION)
sbcl 2.0.0
例として以下のファイルを用意する
(defun f ()
あ)
これをvimで開きvim-lspがcl-lsp stdion
を起動したとき以下のリクエストが行われる(vim-lspのログ出力から抜粋)
2020/10/30 4:27:42:["--->",1,"cl-lsp",{"method":"textDocument/didOpen","params":{"textDocument":{"uri":"file:///C:/Users/user/tmp/test.lisp","version":1,"languageId":"lisp","text":"(defun f ()\n あ)\n\n"}}}]
このときcl-lspはbodyをread-charで読み込み返ってきた文字をutf-8のバイト列分だけcontent-lengthから引いていき、0になるまでこれを繰り返す
Line 23 in a14d5b9
ここで"あ"はutf-8だと(227 129 130)の3要素のバイト列になるが、read-charの返り値が #\あ
ではなく(227 129)と(130)に分割された返り値になることがある
(227 129)を"縺"という文字列で扱ってしまい、babel:string-size-in-octetsで3バイト列として扱われる
これが原因でread-charの回数とcontent-lengthの値が合わなくなる
This was an undocumented necessity.
Hi, has this been tested with emacs yet?
I would like to run cl-lsp, but I am having trouble finding three dependencies listed in file cl-lsp.asd: lem-base, lem-lisp-syntax, lem-lsp-utils. The dependencies are not in Quicklisp.
How can I download them?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.