I showed you my source code, pls respond
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

3.2 KiB

Projects

/chris/dotfiles/src/commit/a9dada55a03d26f10f03c01aa6f6e193110f8604/docs/images/2021-02-13-example-ccls.gif

An IDE1 like experience or better can be achieved within Emacs using two Microsoft2 open-source initiatives:

  • Debug Adapter Protocol3

  • Language Server Protocol4

Debug adapters

Dap mode5 provides support for the Debug Adapter Protocol3 inside of Emacs.

(use-package dap-mode
  :commands (dap-debug))

Language servers

Support for the Language Server Protocol4 is added to Emacs through the Lsp mode6 package.

(use-package lsp-mode
  :commands (lsp lsp-deferred)
  :custom (lsp-idle-delay (* 5 dotfiles/idle)))

UI integration

Lsp ui7 provides user interface improvements for Lsp mode6.

(use-package lsp-ui
  :after lsp
  :custom (lsp-ui-doc-position 'at-point)
          (lsp-ui-doc-delay 0.500))

Code completion

Text completion via Company8 AKA Complete Anything.

(use-package company
  :after lsp)

Integrate with Lsp mode6 to provide completion candidates through the Language Server Protocol4.

  • Specify the repository

  • Use asynchronous completion

(use-package company-lsp
  :after (lsp company)
  :custom (company-lsp-async t)
          (company-backend 'company-lsp)
  :straight (company-lsp :type git
                         :host github
                         :repo "tigersoldier/company-lsp"))

Docker containers

Manage Docker9 containers with Docker.el10.

(use-package docker
  :commands (docker))

Open the container management screen with SPC k.

(dotfiles/leader
  "k" '(docker :which-key "Docker"))

Project management

Configure Projectile11, a project interaction library for Emacs. It provides a nice set of features for operating on a project level without introducing external dependencies.

(use-package projectile
  :custom (projectile-project-search-path '("~/.local/source"))
  :config (projectile-mode))

Resources