summaryrefslogblamecommitdiff
path: root/config/init-programming.el
blob: 6a371156dc66af766cddc59094d1a162c3c4ae58 (plain) (tree)
1
2
3
4
5
6
7
8
9








                                                                                              











                                                            



































                                                              



                                                      
 
                                                       


























                                                                                 
                    
















                                 
;;; init-programming.el --- Configure things related to programming -*- lexical-binding: t -*-
;; Author: Franck Cuny <franck@fcuny.net>

;;; Commentary:

;; Configure things related to programming

;;; Code:

(use-package compile
  :ensure nil
  :hook (compilation-filter . ansi-color-compilation-filter)
  :custom
  (compilation-always-kill t)
  (compilation-context-lines 10)
  (compilation-disable-input t)
  (compilation-scroll-output 'first-error)
  (compilation-scroll-output t)
  (compilation-skip-threshold 2)
  ;; Save all buffers on M-x `compile'
  (compilation-ask-about-save nil))

(use-package eldoc
  :diminish
  :hook ((c-mode-common emacs-lisp-mode) . eldoc-mode)
  :custom
  (eldoc-idle-delay 1)
  (eldoc-documentation-strategy #'eldoc-documentation-default)
  (eldoc-echo-area-use-multiline-p 3)
  (eldoc-echo-area-prefer-doc-buffer 'maybe)
  (eldoc-echo-area-display-truncation-message nil))

(use-package indent
  :commands indent-according-to-mode
  :custom
  (tab-always-indent 'complete))

(use-package tree-sitter
  :ensure t
  :config
  (global-tree-sitter-mode))

(use-package tree-sitter-langs
  :after tree-sitter
  :ensure t)

(use-package direnv
  :ensure t
  :custom
  (direnv-always-show-summary nil)
  :config
  (direnv-mode))

(use-package restclient
  :ensure t
  :mode ("\\.rest\\'" . restclient-mode))

(use-package rainbow-delimiters
  :ensure t
  :hook ((prog-mode . rainbow-delimiters-mode)
         (emacs-lisp-mode . rainbow-delimiters-mode)))

(setq prettify-symbols-unprettify-at-point 'right-edge)

(defun my/github-code-search ()
  "Search code on github for a given language."
  (interactive)
  (let ((language (completing-read
                   "Language: "
                   '("Emacs Lisp" "Python"  "Go" "Nix")))
        (code (read-string "Code: ")))
    (browse-url
     (concat "https://github.com/search?lang=" language
             "&type=code&q=" code))))

(defun my/work-code-search ()
  "Search code on sourcegraph for a given language."
  (interactive)
  (let ((language (completing-read
                   "Language: "
                   '("Ruby" "Python"  "Go")))
        (code (read-string "Code: ")))
    (browse-url
     (concat "https://sourcegraph.rbx.com/search?q=context:global+lang:" language
             "+" code))))


(require 'init-elisp)
(require 'init-lsp)
(require 'init-go)
(require 'init-rust)
(require 'init-nix)
(require 'init-python)
(require 'init-ruby)

(require 'init-flymake)

(require 'init-shell)
(require 'init-json)
(require 'init-terraform)
(require 'init-toml)
(require 'init-yaml)

(require 'init-docker)

(provide 'init-programming)

;;; init-programming.el ends here