Closed raylemon closed 1 year ago
Cela ne marche pas pour tous les serveurs LSP (genre pyright
, clangd
, ...) ou seulement ltex-ls
?
Je n'ai pas accès à une machine Windows, et je ne l'utilise plus depuis plusieurs années. Je ne peux pas reproduire le problème.
Si vous arrivez à avoir un exemple minimal (emacs -Q
) qui ne marche pas, vous pouvez le déclarer directement dans le repo d'Eglot.
Sur Pyright, ça semble fonctionner. Ce doit être ltex qui pose problème.
Avez-vous essayé les deux exemples que j'ai mentionnés dans l'issue précédente (il faudra que me-natural-langs
soit active pour que ça fonctionne). Vous pouvez essayer:
(+after-load! '(:and eglot me-eglot-ltex)
(when-let ((conf (assoc 'org-mode eglot-server-programs (lambda (l e) (memq e l)))))
(setcdr conf
(lambda (_)
(if (or (not (boundp '+ltex-process))
(not (process-live-p +ltex-process)))
(setq +ltex-process
(start-process "eglot/ltex-ls" " *EGLOT ltex-ls process*"
"ltex-ls" "--server-type=TcpSocket" "--port" "9092")))
'("localhost" 9092)))))
Ou:
(+after-load! '(:and eglot me-eglot-ltex)
(when-let ((conf (assoc 'org-mode eglot-server-programs (lambda (l e) (memq e l)))))
(setcdr conf '("ltex-ls"))))
À ajouter dans config.el
J’ai testé les deux versions, j’ai le même message d’erreur.
Essayez :
(+after-load! '(:and eglot me-eglot-ltex)
(when-let ((conf (assoc 'org-mode eglot-server-programs (lambda (l e) (memq e l)))))
(setcdr conf
(lambda (_)
(if (or (not (boundp '+ltex-process))
(not (process-live-p +ltex-process)))
(setq +ltex-process
(start-process "eglot/ltex-ls" " *EGLOT ltex-ls process*"
"ltex-ls" "--server-type=TcpSocket" "--port" "9092")))
'("127.0.0.1" 9092)))))
Toujours pas… j’ai encore le timeout. J’ai récupéré cette trace:
[internal] Tue Jul 11 11:55:30 2023:
(:message "Running language server: 127.0.0.1:9092")
[client-request] (id:1) Tue Jul 11 11:55:30 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
(:processId nil :clientInfo (:name "Eglot") :rootPath "d:/Latex/"
:rootUri "file:///d%3A/Latex" :initializationOptions
#s(hash-table size 1 test eql rehash-size 1.5
rehash-threshold 0.8125 data ())
:capabilities
(:workspace
(:applyEdit t :executeCommand
(:dynamicRegistration :json-false)
:workspaceEdit (:documentChanges t)
:didChangeWatchedFiles
(:dynamicRegistration t) :symbol
(:dynamicRegistration :json-false)
:configuration t :workspaceFolders t)
:textDocument
(:synchronization
(:dynamicRegistration :json-false :willSave t
:willSaveWaitUntil t :didSave t)
:completion
(:dynamicRegistration :json-false :completionItem
(:snippetSupport :json-false
:deprecatedSupport
t :resolveSupport
(:properties
["documentation"
"details"
"additionalTextEdits"])
:tagSupport
(:valueSet [1]))
:contextSupport t)
:hover
(:dynamicRegistration :json-false :contentFormat
["markdown" "plaintext"])
:signatureHelp
(:dynamicRegistration :json-false :signatureInformation
(:parameterInformation
(:labelOffsetSupport t)
:documentationFormat
["markdown" "plaintext"]
:activeParameterSupport t))
:references (:dynamicRegistration :json-false)
:definition
(:dynamicRegistration :json-false :linkSupport t)
:declaration
(:dynamicRegistration :json-false :linkSupport t)
:implementation
(:dynamicRegistration :json-false :linkSupport t)
:typeDefinition
(:dynamicRegistration :json-false :linkSupport t)
:documentSymbol
(:dynamicRegistration :json-false
:hierarchicalDocumentSymbolSupport
t :symbolKind
(:valueSet
[1 2 3 4 5 6 7 8 9 10 11 12 13 14
15 16 17 18 19 20 21 22 23 24
25 26]))
:documentHighlight (:dynamicRegistration :json-false)
:codeAction
(:dynamicRegistration :json-false
:codeActionLiteralSupport
(:codeActionKind
(:valueSet
["quickfix" "refactor"
"refactor.extract"
"refactor.inline"
"refactor.rewrite" "source"
"source.organizeImports"]))
:isPreferredSupport t)
:formatting (:dynamicRegistration :json-false)
:rangeFormatting (:dynamicRegistration :json-false)
:rename (:dynamicRegistration :json-false) :inlayHint
(:dynamicRegistration :json-false) :publishDiagnostics
(:relatedInformation :json-false :codeDescriptionSupport
:json-false :tagSupport
(:valueSet [1 2])))
:window (:showDocument (:support t) :workDoneProgress t)
:general (:positionEncodings ["utf-32" "utf-8" "utf-16"])
:experimental
#s(hash-table size 1 test eql rehash-size 1.5
rehash-threshold 0.8125 data ()))
:workspaceFolders
[(:uri "file:///d%3A/Latex" :name "d:/Latex/")]))
[internal] Tue Jul 11 11:56:00 2023:
(:message "Connection state changed" :change "deleted\n")
----------b---y---e---b---y---e----------
[internal] Tue Jul 11 11:57:23 2023:
(:message "Running language server: 127.0.0.1:9092")
[client-request] (id:1) Tue Jul 11 11:57:23 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
(:processId nil :clientInfo (:name "Eglot") :rootPath "d:/Latex/"
:rootUri "file:///d%3A/Latex" :initializationOptions
#s(hash-table size 1 test eql rehash-size 1.5
rehash-threshold 0.8125 data ())
:capabilities
(:workspace
(:applyEdit t :executeCommand
(:dynamicRegistration :json-false)
:workspaceEdit (:documentChanges t)
:didChangeWatchedFiles
(:dynamicRegistration t) :symbol
(:dynamicRegistration :json-false)
:configuration t :workspaceFolders t)
:textDocument
(:synchronization
(:dynamicRegistration :json-false :willSave t
:willSaveWaitUntil t :didSave t)
:completion
(:dynamicRegistration :json-false :completionItem
(:snippetSupport :json-false
:deprecatedSupport
t :resolveSupport
(:properties
["documentation"
"details"
"additionalTextEdits"])
:tagSupport
(:valueSet [1]))
:contextSupport t)
:hover
(:dynamicRegistration :json-false :contentFormat
["markdown" "plaintext"])
:signatureHelp
(:dynamicRegistration :json-false :signatureInformation
(:parameterInformation
(:labelOffsetSupport t)
:documentationFormat
["markdown" "plaintext"]
:activeParameterSupport t))
:references (:dynamicRegistration :json-false)
:definition
(:dynamicRegistration :json-false :linkSupport t)
:declaration
(:dynamicRegistration :json-false :linkSupport t)
:implementation
(:dynamicRegistration :json-false :linkSupport t)
:typeDefinition
(:dynamicRegistration :json-false :linkSupport t)
:documentSymbol
(:dynamicRegistration :json-false
:hierarchicalDocumentSymbolSupport
t :symbolKind
(:valueSet
[1 2 3 4 5 6 7 8 9 10 11 12 13 14
15 16 17 18 19 20 21 22 23 24
25 26]))
:documentHighlight (:dynamicRegistration :json-false)
:codeAction
(:dynamicRegistration :json-false
:codeActionLiteralSupport
(:codeActionKind
(:valueSet
["quickfix" "refactor"
"refactor.extract"
"refactor.inline"
"refactor.rewrite" "source"
"source.organizeImports"]))
:isPreferredSupport t)
:formatting (:dynamicRegistration :json-false)
:rangeFormatting (:dynamicRegistration :json-false)
:rename (:dynamicRegistration :json-false) :inlayHint
(:dynamicRegistration :json-false) :publishDiagnostics
(:relatedInformation :json-false :codeDescriptionSupport
:json-false :tagSupport
(:valueSet [1 2])))
:window (:showDocument (:support t) :workDoneProgress t)
:general (:positionEncodings ["utf-32" "utf-8" "utf-16"])
:experimental
#s(hash-table size 1 test eql rehash-size 1.5
rehash-threshold 0.8125 data ()))
:workspaceFolders
[(:uri "file:///d%3A/Latex" :name "d:/Latex/")]))
[internal] Tue Jul 11 11:57:53 2023:
(:message "Connection state changed" :change "deleted\n")
----------b---y---e---b---y---e----------
Je confirme aussi que eglot avec pyright fonctionne sans soucis. J’ai installé ltex-ls 16, et je l’ai lancé en serveur avant. Sans succès…
Oui, c'est bizarre comme comportement, sans machine Windows, je ne peux pas t'aider plus que ça.
Essaye de:
me-natural-langs
des minemacs-modules
.config.el
(+eglot-register
'(text-mode org-mode markdown-mode rst-mode git-commit-mode)
'("localhost" 42421)))
ltex-ls --server-type=TcpSocket --port 42421
SPC c e e
.On dirait que eglot ne gère pas correctement les liens…
let: Searching for program: No such file or directory, localhost:42421
cond: No link found
Ah, essaye de le changer à 127.0.0.1:
(+eglot-register
'(text-mode org-mode markdown-mode rst-mode git-commit-mode)
'("127.0.0.1" 42421)))
Même problème…
End supposant que le chemin de ltex-ls
est dans la PATH de l'environnement, essaie:
(+eglot-register
'(text-mode org-mode markdown-mode rst-mode git-commit-mode)
"ltex-ls"))
Sinon, tu peut remplacer "ltex-ls"
par le chemin complet de la commande (genre "C:\\ltex\\bin\\ltex-ls.bat"
)
Je pense que le problème n’est pas eglot, mais ltex… Il me semble voir que le serveur tente de démarrer (du moins avec ton code ci-dessus, je vais tester sans juste après).
Les messages d’erreur obtenus sont des messages d’erreur Java avec une classe qui ne se charge pas.
Ok ,enfin ça fonctionne! Le problème était double. Il y a bien un souci sur la version de LTeX (16.0.0.0). En rétrogradant de version, ça fonctionne. J’ai testé toutes les solutions que tu m’as indiquée dans l’ordre, et seule la solution envoyée ce 12 juillet permet de faire fonctionner eglot.
Sous linux, je n’ai pas eu le moindre soucis.
Merci énormément de ton aide, et je reste à ta disposition pour faire des tests sous Windows ;)
Super! Merci à toi pour ta patience! Je te solliciterai sans doute si j'ai un problème sous Windows :D
Bonjour, il est impossible d’utiliser eglot avec Windows. Voici la backtrace: