 ;; Swift
 (use-package swift-mode
   :mode "\\.swift\\'")
+
+(use-package lsp-sourcekit
+  :after (lsp-mode))
 
 ;; Scala
 (use-package scala-mode

                    (push web-mode-checkers lsp-flycheck-checkers)))))))

(use-package lsp-ui
  :after (lsp-mode))

(use-package lsp-jedi
  :after (lsp-mode))

(use-package lsp-pyright
  :after (lsp-mode)
  :config
  (let ((client (gethash 'pyright lsp-clients)))
    (setf (lsp--client-major-modes client) nil)
    (setf (lsp--client-activation-fn client)
          (lambda (file-name mode)
            (and (or (not (null (string-match-p "py[iw]?" (or (file-name-extension file-name) ""))))
                     (eq mode 'python-mode))
                 (or (locate-dominating-file file-name "pyrightconfig.json")
                     (when-let ((pep518-config-file-dir (locate-dominating-file file-name "pyproject.toml")))
                       (with-temp-buffer
                         (insert-file-contents (concat pep518-config-file-dir "pyproject.toml"))
                         (goto-char (point-min))
                         (re-search-forward "^\\[tool.pyright\\]$" nil t nil)))))))))

(use-package lsp-sourcekit
  :after (lsp-mode))

(use-package lsp-origami

                  (use-local-map local-map))
                (define-key importmagic-mode-map (kbd "C-c C-l") nil)))))

(use-package lsp-jedi
  :after (lsp-mode))

(use-package lsp-pyright
  :after (lsp-mode)
  :config
  (let ((client (gethash 'pyright lsp-clients)))
    (setf (lsp--client-major-modes client) nil)
    (setf (lsp--client-activation-fn client)
          (lambda (file-name mode)
            (and (or (not (null (string-match-p "py[iw]?" (or (file-name-extension file-name) ""))))
                     (eq mode 'python-mode))
                 (or (locate-dominating-file file-name "pyrightconfig.json")
                     (when-let ((pep518-config-file-dir (locate-dominating-file file-name "pyproject.toml")))
                       (with-temp-buffer
                         (insert-file-contents (concat pep518-config-file-dir "pyproject.toml"))
                         (goto-char (point-min))
                         (re-search-forward "^\\[tool.pyright\\]$" nil t nil)))))))))

;; Ruby
(use-package yard-mode)
(use-package enh-ruby-mode
