diff --git a/alacritty.yml b/alacritty.yml index 64e0ba2..8ff165e 100644 --- a/alacritty.yml +++ b/alacritty.yml @@ -159,40 +159,40 @@ font: # If `true`, bold text is drawn using the bright color variants. #draw_bold_text_with_bright_colors: false -# Colors (base16-woodland) -# by Jay Cornwall (https://jcornwall.com) +# Colors (base16-espresso) +# by Alex Mirrington (https://github.com/alexmirrington) colors: # Default colors primary: - background: '0x231e18' - foreground: '0xcabcb1' + background: '0x2d2d2d' + foreground: '0xcccccc' # Colors the cursor will use if `custom_cursor_colors` is true cursor: - text: '0x231e18' - cursor: '0xcabcb1' + text: '0x2d2d2d' + cursor: '0xcccccc' # Normal colors normal: - black: '0x231e18' - red: '0xd35c5c' - green: '0xb7ba53' - yellow: '0xe0ac16' - blue: '0x88a4d3' - magenta: '0xbb90e2' - cyan: '0x6eb958' - white: '0xcabcb1' + black: '0x2d2d2d' + red: '0xd25252' + green: '0xa5c261' + yellow: '0xffc66d' + blue: '0x6c99bb' + magenta: '0xd197d9' + cyan: '0xbed6ff' + white: '0xcccccc' # Bright colors bright: - black: '0x9d8b70' - red: '0xca7f32' - green: '0x302b25' - yellow: '0x48413a' - blue: '0xb4a490' - magenta: '0xd7c8bc' - cyan: '0xb49368' - white: '0xe4d4c8' + black: '0x777777' + red: '0xf9a959' + green: '0x393939' + yellow: '0x515151' + blue: '0xb4b7b4' + magenta: '0xe0e0e0' + cyan: '0xf97394' + white: '0xffffff' draw_bold_text_with_bright_colors: false diff --git a/nvim/autoload/plug.vim b/nvim/autoload/plug.vim index 7914bfe..c29b9a2 100644 --- a/nvim/autoload/plug.vim +++ b/nvim/autoload/plug.vim @@ -25,7 +25,7 @@ " Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' } " Plug 'tpope/vim-fireplace', { 'for': 'clojure' } " -" " Using a non-master branch +" " Using a non-default branch " Plug 'rdnetto/YCM-Generator', { 'branch': 'stable' } " " " Using a tagged release; wildcard allowed (requires git 1.9.2 or above) @@ -106,7 +106,7 @@ if s:is_win && &shellslash else let s:me = resolve(expand(':p')) endif -let s:base_spec = { 'branch': 'master', 'frozen': 0 } +let s:base_spec = { 'branch': '', 'frozen': 0 } let s:TYPE = { \ 'string': type(''), \ 'list': type([]), @@ -646,25 +646,25 @@ function! s:parse_options(arg) endif let opts.tag = a:arg elseif type == s:TYPE.dict - call extend(opts, a:arg) for opt in ['branch', 'tag', 'commit', 'rtp', 'dir', 'as'] - if has_key(opts, opt) - \ && (type(opts[opt]) != s:TYPE.string || empty(opts[opt])) + if has_key(a:arg, opt) + \ && (type(a:arg[opt]) != s:TYPE.string || empty(a:arg[opt])) throw printf(opt_errfmt, opt, 'string') endif endfor for opt in ['on', 'for'] - if has_key(opts, opt) - \ && type(opts[opt]) != s:TYPE.list - \ && (type(opts[opt]) != s:TYPE.string || empty(opts[opt])) + if has_key(a:arg, opt) + \ && type(a:arg[opt]) != s:TYPE.list + \ && (type(a:arg[opt]) != s:TYPE.string || empty(a:arg[opt])) throw printf(opt_errfmt, opt, 'string or list') endif endfor - if has_key(opts, 'do') - \ && type(opts.do) != s:TYPE.funcref - \ && (type(opts.do) != s:TYPE.string || empty(opts.do)) + if has_key(a:arg, 'do') + \ && type(a:arg.do) != s:TYPE.funcref + \ && (type(a:arg.do) != s:TYPE.string || empty(a:arg.do)) throw printf(opt_errfmt, 'do', 'string or funcref') endif + call extend(opts, a:arg) if has_key(opts, 'dir') let opts.dir = s:dirpath(s:plug_expand(opts.dir)) endif @@ -1206,7 +1206,7 @@ function! s:update_finish() call s:log4(name, 'Checking out '.tag) let out = s:system('git checkout -q '.plug#shellescape(tag).' -- 2>&1', spec.dir) else - let branch = get(spec, 'branch', 'master') + let branch = s:git_origin_branch(spec) call s:log4(name, 'Merging origin/'.s:esc(branch)) let out = s:system('git checkout -q '.plug#shellescape(branch).' -- 2>&1' \. (has_key(s:update.new, name) ? '' : ('&& git merge --ff-only '.plug#shellescape('origin/'.branch).' 2>&1')), spec.dir) @@ -2208,6 +2208,22 @@ function! s:system_chomp(...) return v:shell_error ? '' : substitute(ret, '\n$', '', '') endfunction +function! s:git_origin_branch(spec) + if len(a:spec.branch) + return a:spec.branch + endif + + " The file may not be present if this is a local repository + let origin_head = a:spec.dir.'/.git/refs/remotes/origin/HEAD' + if filereadable(origin_head) + return split(readfile(origin_head)[0], 'refs/remotes/origin/')[-1] + endif + + " The command may not return the name of a branch in detached HEAD state + let result = s:lines(s:system('git symbolic-ref --short HEAD', a:spec.dir)) + return v:shell_error ? '' : result[-1] +endfunction + function! s:git_validate(spec, check_branch) let err = '' if isdirectory(a:spec.dir) @@ -2230,8 +2246,9 @@ function! s:git_validate(spec, check_branch) \ 'PlugUpdate required.'], "\n") endif elseif a:check_branch - let branch = result[0] + let current_branch = result[0] " Check tag + let origin_branch = s:git_origin_branch(a:spec) if has_key(a:spec, 'tag') let tag = s:system_chomp('git describe --exact-match --tags HEAD 2>&1', a:spec.dir) if a:spec.tag !=# tag && a:spec.tag !~ '\*' @@ -2239,14 +2256,14 @@ function! s:git_validate(spec, check_branch) \ (empty(tag) ? 'N/A' : tag), a:spec.tag) endif " Check branch - elseif a:spec.branch !=# branch + elseif origin_branch !=# current_branch let err = printf('Invalid branch: %s (expected: %s). Try PlugUpdate.', - \ branch, a:spec.branch) + \ current_branch, origin_branch) endif if empty(err) let [ahead, behind] = split(s:lastline(s:system([ \ 'git', 'rev-list', '--count', '--left-right', - \ printf('HEAD...origin/%s', a:spec.branch) + \ printf('HEAD...origin/%s', origin_branch) \ ], a:spec.dir)), '\t') if !v:shell_error && ahead if behind @@ -2254,11 +2271,11 @@ function! s:git_validate(spec, check_branch) " pushable (and probably not that messed up). let err = printf( \ "Diverged from origin/%s (%d commit(s) ahead and %d commit(s) behind!\n" - \ .'Backup local changes and run PlugClean and PlugUpdate to reinstall it.', a:spec.branch, ahead, behind) + \ .'Backup local changes and run PlugClean and PlugUpdate to reinstall it.', origin_branch, ahead, behind) else let err = printf("Ahead of origin/%s by %d commit(s).\n" \ .'Cannot update until local changes are pushed.', - \ a:spec.branch, ahead) + \ origin_branch, ahead) endif endif endif @@ -2588,20 +2605,23 @@ function! s:diff() endif call s:append_ul(2, origin ? 'Pending updates:' : 'Last update:') for [k, v] in plugs - let range = origin ? '..origin/'.v.branch : 'HEAD@{1}..' - let cmd = ['git', 'log', '--graph', '--color=never'] - if s:git_version_requirement(2, 10, 0) - call add(cmd, '--no-show-signature') - endif - call extend(cmd, ['--pretty=format:%x01%h%x01%d%x01%s%x01%cr', range]) - if has_key(v, 'rtp') - call extend(cmd, ['--', v.rtp]) - endif - let diff = s:system_chomp(cmd, v.dir) - if !empty(diff) - let ref = has_key(v, 'tag') ? (' (tag: '.v.tag.')') : has_key(v, 'commit') ? (' '.v.commit) : '' - call append(5, extend(['', '- '.k.':'.ref], map(s:lines(diff), 's:format_git_log(v:val)'))) - let cnts[origin] += 1 + let branch = s:git_origin_branch(v) + if len(branch) + let range = origin ? '..origin/'.branch : 'HEAD@{1}..' + let cmd = ['git', 'log', '--graph', '--color=never'] + if s:git_version_requirement(2, 10, 0) + call add(cmd, '--no-show-signature') + endif + call extend(cmd, ['--pretty=format:%x01%h%x01%d%x01%s%x01%cr', range]) + if has_key(v, 'rtp') + call extend(cmd, ['--', v.rtp]) + endif + let diff = s:system_chomp(cmd, v.dir) + if !empty(diff) + let ref = has_key(v, 'tag') ? (' (tag: '.v.tag.')') : has_key(v, 'commit') ? (' '.v.commit) : '' + call append(5, extend(['', '- '.k.':'.ref], map(s:lines(diff), 's:format_git_log(v:val)'))) + let cnts[origin] += 1 + endif endif let bar .= '=' call s:progress_bar(2, bar, len(total)) diff --git a/nvim/init.vim b/nvim/init.vim index 44223ff..701cdaf 100644 --- a/nvim/init.vim +++ b/nvim/init.vim @@ -1,3 +1,7 @@ +" Interface settings +" Show line numbers +set number + " Tabbing settings " Width of tab character set tabstop=4 @@ -11,8 +15,7 @@ set smarttab " Settings for linting with ALE (requires ALE plugin activated below) " Linters to use let g:ale_linters={'python': ['pylama']} -" Only run linters that are referred to explicitly -let g:ale_linters_explicit=1 +" Only run linters that are referred to explicitly let g:ale_linters_explicit=1 " When to lint let g:ale_lint_on_text_changed=1 let g:ale_lint_on_insert_leave=0 @@ -50,13 +53,10 @@ Plug 'ziglang/zig.vim' " Odin language support Plug 'Tetralux/odin.vim' -" Vim Wiki -" Plug 'vimwiki/vimwiki' - " Pencil, for writing prose Plug 'reedes/vim-pencil' -" Colorschemes +" Colourschemes " Following option should be set on a 256 color " terminal to enable true colour set termguicolors @@ -71,6 +71,8 @@ Plug 'srcery-colors/srcery-vim' Plug 'nice/sweater' Plug 'noahfrederick/vim-hemisu' Plug 'ajgrf/sprinkles' +Plug 'xero/sourcerer.vim' +Plug 'franbach/miramare' " base16 colourscheme set (very large) Plug 'chriskempson/base16-vim' diff --git a/zsh/zshrc b/zsh/zshrc index 73c77ef..88dc44c 100644 --- a/zsh/zshrc +++ b/zsh/zshrc @@ -16,7 +16,6 @@ setopt CORRECT alias ls="ls --color=auto" alias swirc="swirc -r cren -u cren -n cren" alias gcc="gcc -Wall" -alias links="links -driver x" # Prompt # Load colour module for marking up prompt