config

Personal configuration.
git clone git://code.dwrz.net/config
Log | Files | Refs

lsp-gdscript.el (2079B)


      1 ;;; lsp-gdscript.el --- LSP mode -*- lexical-binding: t; -*-
      2 
      3 ;; Copyright (C) 2020 Oliver Frank
      4 
      5 ;; Author: Oliver Frank <oliverfrank321@gmail.com>
      6 ;; Keywords: languages
      7 
      8 ;; This program is free software; you can redistribute it and/or modify
      9 ;; it under the terms of the GNU General Public License as published by
     10 ;; the Free Software Foundation, either version 3 of the License, or
     11 ;; (at your option) any later version.
     12 
     13 ;; This program is distributed in the hope that it will be useful,
     14 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
     15 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     16 ;; GNU General Public License for more details.
     17 
     18 ;; You should have received a copy of the GNU General Public License
     19 ;; along with this program.  If not, see <https://www.gnu.org/licenses/>.
     20 
     21 ;;; Commentary:
     22 
     23 ;; lsp-gdscript client
     24 
     25 ;;; Code:
     26 
     27 (require 'lsp-mode)
     28 
     29 (defgroup lsp-gdscript nil
     30   "LSP support for GDScript, using godot's language server."
     31   :group 'lsp-mode
     32   :link '(url-link "https://github.com/godotengine/godot")
     33   :package-version '(lsp-mode . "6.1"))
     34 
     35 (defcustom lsp-gdscript-port 6005
     36   "Port to connect server to"
     37   :type 'integer
     38   :group 'lsp-gdscript)
     39 
     40 (defun lsp-gdscript-tcp-connect-to-port ()
     41   "Define a TCP connection to language server."
     42   (list
     43    :connect (lambda (filter sentinel name _environment-fn _workspace)
     44               (let* ((host "localhost")
     45                      (port lsp-gdscript-port)
     46                      (tcp-proc (lsp--open-network-stream host port (concat name "::tcp"))))
     47 
     48                 (set-process-query-on-exit-flag tcp-proc nil)
     49                 (set-process-filter tcp-proc filter)
     50                 (set-process-sentinel tcp-proc sentinel)
     51                 (cons tcp-proc tcp-proc)))
     52    :test? (lambda () t)))
     53 
     54 (lsp-register-client
     55  (make-lsp-client :new-connection (lsp-gdscript-tcp-connect-to-port)
     56                   :activation-fn (lsp-activate-on "gdscript")
     57                   :server-id 'gdscript))
     58 
     59 (lsp-consistency-check lsp-gdscript)
     60 
     61 (provide 'lsp-gdscript)
     62 ;;; lsp-gdscript.el ends here