summaryrefslogtreecommitdiff
path: root/fnl/settings/options.fnl
blob: 1526856d9eb06737742a32b2f1531c2ec2fa77c1 (plain)
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
;; Sets options in neovim
(module settings.options
  {autoload {nvim aniseed.nvim}})

(def- opts {
  :backup false ;; creates a backup file
  :clipboard "unnamedplus" ;; allows neovim to access the system clipboard
  :cmdheight 2 ;; more space in the neovim command line for displaying messages
  :completeopt { "menuone" "noselect" } ;; mostly just for cmp
  :conceallevel 0 ;; so that `` is visible in markdown files
  :fileencoding "utf-8" ;; the encoding written to a file
  :hlsearch true ;; highlight all matches on previous search pattern
  :ignorecase true ;; ignore case in search patterns
  :mouse "" ;; disable the mouse to be used in neovim
  :pumheight 10 ;; pop up menu height
  :showmode false ;; we don't need to see things like ;; INSERT ;; anymore
  :showtabline 2 ;; always show tabs
  :smartcase true ;; smart case
  :smartindent true ;; make indenting smarter again
  :splitbelow true ;; force all horizontal splits to go below current window
  :splitright true ;; force all vertical splits to go to the right of current window
  :swapfile false ;; creates a swapfile
  :termguicolors true ;; set term gui colors (most terminals support this)
  :timeoutlen 1000 ;; time to wait for a mapped sequence to complete (in milliseconds)
  :undofile true ;; enable persistent undo
  :updatetime 300 ;; faster completion (4000ms default)
  :writebackup false ;; if a file is being edited by another program (or was written to file while editing with another program), it is not allowed to be edited
  :expandtab true ;; convert tabs to spaces
  :shiftwidth 2 ;; the number of spaces inserted for each indentation
  :tabstop 2 ;; insert 2 spaces for a tab
  :cursorline true ;; highlight the current line
  :number true ;; set numbered lines
  :relativenumber true ;; set relative numbered lines
  :numberwidth 4 ;; set number column width to 2 {default 4}
  :signcolumn "yes" ;; always show the sign column, otherwise it would shift the text each time
  :wrap false ;; display lines as one long line
  :scrolloff 8 ;; is one of my fav
  :sidescrolloff 8
  :guifont "monospace:h17" ;; the font used in graphical neovim applications
  }
)

(defn- apply-opts [...]
  (each [k v (pairs ...)]
    (tset vim.opt k v)))

(set vim.cmd "set whichwrap+=<,>,[,],h,l")
(set vim.cmd [[set iskeyword+=-]])
(set vim.cmd [[set formatoptions-=cro]])
(set nvim.ex.set "shortmess+=c")
(apply-opts opts)