From 10176dee7a85dfdb8729232ab0ecec408246a269 Mon Sep 17 00:00:00 2001
From: Gustaf Rydholm <gustaf.rydholm@gmail.com>
Date: Fri, 1 Apr 2022 00:24:47 +0200
Subject: fix(settings): update settings

---
 fnl/settings/init.fnl    |  2 +-
 fnl/settings/keymaps.fnl | 54 +++++++++++++++++++++++++-----------------------
 fnl/settings/options.fnl | 52 ++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 81 insertions(+), 27 deletions(-)
 create mode 100644 fnl/settings/options.fnl

(limited to 'fnl/settings')

diff --git a/fnl/settings/init.fnl b/fnl/settings/init.fnl
index 9546224..0045fc2 100644
--- a/fnl/settings/init.fnl
+++ b/fnl/settings/init.fnl
@@ -1,4 +1,4 @@
--- Load nvim settings
+;; Load nvim settings
 (module settings)
 
 (require :settings.options)
diff --git a/fnl/settings/keymaps.fnl b/fnl/settings/keymaps.fnl
index 9c4b0e8..b6c826a 100644
--- a/fnl/settings/keymaps.fnl
+++ b/fnl/settings/keymaps.fnl
@@ -1,4 +1,4 @@
--- Custom keymappings.
+;; Custom keymappings.
 (module settings.keymaps
   {autoload {nvim aniseed.nvim}})
 
@@ -6,52 +6,54 @@
 (defn- map [mode lhs rhs opt]
   (nvim.set_keymap mode lhs rhs opt)
 
---Remap space as leader key
+;;Remap space as leader key
 (map "" "<Space>" "<Nop>" opts)
-
--- Modes
---   normal_mode = "n"
---   insert_mode = "i"
---   visual_mode = "v"
---   visual_block_mode = "x"
---   term_mode = "t"
---   command_mode = "c"
-
--- Normal --
--- Better window navigation
+(set nvim.g.mapleader " ")
+(set nvim.g.maplocalleader " ")
+
+;; Modes
+;;   normal_mode = "n"
+;;   insert_mode = "i"
+;;   visual_mode = "v"
+;;   visual_block_mode = "x"
+;;   term_mode = "t"
+;;   command_mode = "c"
+
+;; Normal ;;
+;; Better window navigation
 (map "n" "<C-h>" "<C-w>h" opts)
 (map "n" "<C-j>" "<C-w>j" opts)
 (map "n" "<C-k>" "<C-w>k" opts)
 (map "n" "<C-l>" "<C-w>l" opts)
 
 
--- Resize with arrows
+;; Resize with arrows
 (map "n" "<C-Up>" ":resize -2<CR>" opts)
 (map "n" "<C-Down>" ":resize +2<CR>" opts)
 (map "n" "<C-Left>" ":vertical resize -2<CR>" opts)
 (map "n" "<C-Right>" ":vertical resize +2<CR>" opts)
 
--- Navigate buffers
+;; Navigate buffers
 (map "n" "<S-l>" ":bnext<CR>" opts)
 (map "n" "<S-h>" ":bprevious<CR>" opts)
 
--- Insert --
--- Press jk fast to enter
+;; Insert ;;
+;; Press jk fast to enter
 (map "i" "jk" "<ESC>" opts)
 
--- Visual --
--- Stay in indent mode
+;; Visual ;;
+;; Stay in indent mode
 (map "v" "<" "<gv" opts)
 (map "v" ">" ">gv" opts)
 
--- Move text up and down
-(map "v" "<A-j>" ":m .+1<CR>==" opts)
-(map "v" "<A-k>" ":m .-2<CR>==" opts)
-(map "v" "p" '"_dP' opts)
-
--- Visual Block --
--- Move text up and down
+;; Visual Block ;;
+;; Move text up and down
 (map "x" "J" ":move '>+1<CR>gv-gv" opts)
 (map "x" "K" ":move '<-2<CR>gv-gv" opts)
 (map "x" "<A-j>" ":move '>+1<CR>gv-gv" opts)
 (map "x" "<A-k>" ":move '<-2<CR>gv-gv" opts)
+
+;; Move text up and down
+(map "v" "<A-j>" ":m .+1<CR>==" opts)
+(map "v" "<A-k>" ":m .-2<CR>==" opts)
+(map "v" "p" '"_dP' opts)
diff --git a/fnl/settings/options.fnl b/fnl/settings/options.fnl
new file mode 100644
index 0000000..9cf42e5
--- /dev/null
+++ b/fnl/settings/options.fnl
@@ -0,0 +1,52 @@
+;; 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 [opts]
+  (each [k v (pairs opts)]
+  (set vim.opt[k] v)))
+
+(set vim.cmd "set whichwrap+=<,>,[,],h,l")
+(set vim.cmd [[set iskeyword+=-]])
+(set vim.cmd [[set formatoptions-=cro]])
+(nvim.ex.set "shortmess+=c")
+(nvim.ex.set :spell)
+(apply-opts)
-- 
cgit v1.2.3-70-g09d2