summaryrefslogtreecommitdiff
path: root/fnl/settings/options.fnl
blob: cb86307fc744a66a55d6a1ee77e851af94bea365 (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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
;; Sets options in neovim

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

(local spellfile (.. (os.getenv :XDG_CONFIG_HOME) :/nvim/spell/en.utf-8.add))

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

;; Move to new line when reaching the beginning or end.
(vim.opt.whichwrap:append "<,>,[,],h,l")

(apply-opts opts)
(set vim.g.mapleader " ")
(set vim.g.maplocalleader " ")