Coder Social home page Coder Social logo

cl-lsp's People

Contributors

cxxxr avatar dependabot[bot] avatar longlene avatar theangelperalta avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cl-lsp's Issues

No 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

Using cl-lsp with kakoune text editor

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.

setup it in vscode

@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

Need help?

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?

Formatting doesn't do anything

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.

Diagnostics

Diagnostics don't seem to be supported yet; even a simple error such as imbalanced parenthesis aren't reported.

cl-lsp won't install under SBCL 2.1.2 on MacOS M1

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.

Does not install with Roswell on Arch Linux

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">)))
4: (UIOP/LISP-BUILD:CHECK-LISP-COMPILE-RESULTS NIL T T "
/asdf-action::format-action/" ((#<ASDF/LISP-ACTION:COMPILE-OP > . #<ASDF/LISP-ACTION:CL-SOURCE-FILE "log4cl" "src" "naming-sbcl">)))
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.

Unable to install on OpenSUSE

`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">)))
4: (UIOP/LISP-BUILD:CHECK-LISP-COMPILE-RESULTS NIL T T "
/asdf-action::format-action/" ((#<ASDF/LISP-ACTION:COMPILE-OP > . #<ASDF/LISP-ACTION:CL-SOURCE-FILE "log4cl" "src" "naming-sbcl">)))
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
`

Not working with neovim

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:

  1. Install neovim via your package manager.
  2. Install pyright via pip (For comparison), install cl-lsp via roswell
  3. Ensure directories holding pyright and cl-lsp are both in PATH
  4. Store the minimal.lua to local drive, say /tmp/minimal.lua
  5. Run nvim --clean -u /tmp/test.lua a.lisp, type some lisp codes, see no completion working.
  6. Run nvim --clean -u /tmp/test.lua a.py, type some python codes, completion is working.

Why is roswell required?

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.

Setup and features questions

Hello,
I'm very excited about the existence of this project, but I'd appreciate a tad more information:

  • what is the project status ?
  • how do we set it up with Slime ?
  • does Lem use it ? (it doesn't seem so)
  • and of course, added explanations on the features it brings with maybe added screenshots or a screencast as you recently did with Lem would be awesome.

Thanks !

request for more documentation

Please add documentation to the README file to describe:

  1. How to compile and load cl-lsp using Quicklisp, especially where to find lem packages.
  2. How to run the server. Perhaps add a small shell script that serves as an example.
  3. Instructions for connecting to a running server using Slime to debug problems.

I'm interested in trying cl-lsp with Emacs. Thanks for writing cl-lsp!

Does not install with Roswell on Debian

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でリクエストメッセージにマルチバイト文字列が入っているとパースエラーになる場合がある

環境
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になるまでこれを繰り返す

:for c := (read-char stream)

ここで"あ"はutf-8だと(227 129 130)の3要素のバイト列になるが、read-charの返り値が #\あ ではなく(227 129)と(130)に分割された返り値になることがある
(227 129)を"縺"という文字列で扱ってしまい、babel:string-size-in-octetsで3バイト列として扱われる
これが原因でread-charの回数とcontent-lengthの値が合わなくなる

emacs?

Hi, has this been tested with emacs yet?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.