Compare commits

...

11 Commits

Author SHA1 Message Date
Keanu Timmermans 5ab08f0f0b
Merge branch 'dmitmel-master' 2021-03-18 19:20:39 +01:00
Keanu Timmermans ce9c2d33ae
Merged dmitmel:master into master. 2021-03-18 19:20:25 +01:00
Dmytro Meleshko 35b1e9446e [nvim] add a binding for my favorite git feature 2021-03-17 19:56:07 +02:00
Dmytro Meleshko 7177de926a [nvim] fix ranger on Android 2021-03-12 13:39:16 +02:00
Dmytro Meleshko dfb049f52f [nvim] add a quick keymap switcher 2021-03-12 13:28:08 +02:00
Dmytro Meleshko 0a3c9b7424 [nvim] add an indentation block motion 2021-03-07 15:24:42 +02:00
Dmytro Meleshko b60438f49b [zsh] add library paths of all installed Rust toolchains 2021-03-07 14:59:48 +02:00
Dmytro Meleshko aecef017f9 [zsh] inline the fasd plugin from OMZ and remove the useless one called 'extract' 2021-03-07 13:06:14 +02:00
Dmytro Meleshko b467ed4d63 [nvim] switch from coc-python to coc-pyright 2021-03-05 14:59:59 +02:00
Dmytro Meleshko d2eb84c663
Merge pull request #7 from dmitmel/dependabot/npm_and_yarn/script-resources/markdown2htmldoc/prismjs-1.23.0
Bump prismjs from 1.21.0 to 1.23.0 in /script-resources/markdown2htmldoc
2021-03-01 22:57:41 +02:00
dependabot[bot] 97d8246877
Bump prismjs from 1.21.0 to 1.23.0 in /script-resources/markdown2htmldoc
Bumps [prismjs](https://github.com/PrismJS/prism) from 1.21.0 to 1.23.0.
- [Release notes](https://github.com/PrismJS/prism/releases)
- [Changelog](https://github.com/PrismJS/prism/blob/master/CHANGELOG.md)
- [Commits](https://github.com/PrismJS/prism/compare/v1.21.0...v1.23.0)

Signed-off-by: dependabot[bot] <support@github.com>
2021-03-01 20:56:44 +00:00
8 changed files with 137 additions and 27 deletions

View File

@ -0,0 +1,63 @@
" Based on <https://github.com/kana/vim-textobj-indent/blob/deb76867c302f933c8f21753806cbf2d8461b548/autoload/textobj/indent.vim>
" A motion for moving over enclosing indentation blocks. Primarily intended
" for reverse-engineering CrossCode.
function dotfiles#indent_motion#run(direction)
let l:cursor_linenr = line(".")
let l:max_linenr = line("$")
let l:retry = 0
while l:retry <# 2
let l:retry += 1
let l:base_linenr = l:cursor_linenr
let l:base_indent = 0
while 1 <=# l:base_linenr && l:base_linenr <=# l:max_linenr
let l:base_indent = dotfiles#indent_motion#indent_level_of(l:base_linenr)
if l:base_indent >=# 0
break
endif
let l:base_linenr += a:direction
endwhile
let l:target_linenr = l:base_linenr
let l:curr_linenr = l:base_linenr + a:direction
let l:prev_indent = l:base_indent
while 1 <=# l:curr_linenr && l:curr_linenr <=# l:max_linenr
let l:indent = dotfiles#indent_motion#indent_level_of(l:curr_linenr)
if l:indent >=# 0
if l:indent <# l:base_indent
break
else
let l:target_linenr = l:curr_linenr
endif
elseif l:base_indent ==# 0 && l:prev_indent ==# 0
break
endif
let l:prev_indent = l:indent
let l:curr_linenr += a:direction
endwhile
if l:target_linenr ==# l:cursor_linenr
let l:cursor_linenr += a:direction
if 1 <=# l:cursor_linenr && l:cursor_linenr <=# l:max_linenr
continue
endif
endif
break
endwhile
execute "normal! " . l:target_linenr . "G^"
endfunction
" <https://github.com/kana/vim-textobj-indent/blob/deb76867c302f933c8f21753806cbf2d8461b548/autoload/textobj/indent.vim#L120-L127>
function dotfiles#indent_motion#indent_level_of(linenr)
if getline(a:linenr) ==# ""
return -1
endif
return indent(a:linenr)
endfunction

View File

@ -0,0 +1,6 @@
function dotfiles#utils#array_remove_element(array, element)
let l:index = index(a:array, a:element)
if l:index >= 0
call remove(a:array, l:index)
endif
endfunction

View File

@ -0,0 +1,9 @@
for [s:plug_mapping, s:direction, s:user_mapping] in [["prev", -1, "("], ["next", 1, ")"]]
let s:plug_mapping = "<Plug>dotfiles_indent_motion_".s:plug_mapping
for s:mode in ["n", "v", "o"]
execute s:mode."noremap" "<silent>" s:plug_mapping "<Cmd>call dotfiles#indent_motion#run(".s:direction.")<CR>"
if !empty(s:user_mapping)
execute s:mode."map" s:user_mapping s:plug_mapping
endif
endfor
endfor

View File

@ -106,10 +106,6 @@ set commentstring=//%s
nnoremap <C-n> <C-i>
nnoremap <C-p> <C-o>
nnoremap <leader>kk <Cmd>set keymap&<CR>
nnoremap <leader>kr <Cmd>set keymap=russian-jcuken-custom<CR>
nnoremap <leader>ku <Cmd>set keymap=ukrainian-jcuken-custom<CR>
nnoremap Q <nop>
" normal mode
@ -138,6 +134,19 @@ set commentstring=//%s
" }}}
" Keymap switcher {{{
nnoremap <leader>kk <Cmd>set keymap&<CR>
nnoremap <leader>kr <Cmd>set keymap=russian-jcuken-custom<CR>
nnoremap <leader>ku <Cmd>set keymap=ukrainian-jcuken-custom<CR>
nnoremap <C-o> <Cmd>DotfilesSwapKeymaps<CR>
let g:dotfiles_prev_keymap = &keymap
command! -nargs=0 DotfilesSwapKeymaps let [g:dotfiles_prev_keymap, &keymap] = [&keymap, g:dotfiles_prev_keymap]
" }}}
" Search {{{
" ignore case if the pattern doesn't contain uppercase characters (use '\C'

View File

@ -36,6 +36,10 @@ nnoremap <silent><expr> <CR> empty(&buftype) ? ":write<bar>wall\<CR>" : "\<CR>"
" Ranger {{{
let g:ranger_replace_netrw = 1
let g:ranger_map_keys = 0
" The default path (/tmp/chosenfile) is inaccessible at least on
" Android/Termux, so the tempname() function was chosen because it respects
" $TMPDIR.
let g:ranger_choice_file = tempname()
nnoremap <silent> <Leader>o <Cmd>Ranger<CR>
" ranger.vim relies on the Bclose.vim plugin, but I use Bbye.vim, so this
" command is here just for compatitabilty

View File

@ -8,6 +8,7 @@
nnoremap <leader>gw :GBrowse<CR>
nnoremap <leader>gW :.GBrowse<CR>
nnoremap <leader>gc :Git commit %
nnoremap <leader>gC :Git commit --amend
nnoremap <leader>gl :Gclog<CR>
nnoremap <leader>gp :Git push
" }}}

View File

@ -70,7 +70,8 @@ export GOPATH=~/go
path_prepend path "$GOPATH/bin"
# Rust
if [[ -f ~/.rustup/settings.toml ]]; then
rustup_home="${RUSTUP_HOME:-$HOME/.rustup}"
if [[ -f "$rustup_home"/settings.toml ]]; then
# Make a low-effort attempt at quickly extracting the selected Rust toolchain
# from rustup's settings. The TOML file is obviously assumed to be well-formed
# and syntactically correct because virtually always it's manipulated with the
@ -78,7 +79,7 @@ if [[ -f ~/.rustup/settings.toml ]]; then
# because Rust toolchain names don't need escaping in strings.
# See also <https://github.com/toml-lang/toml/blob/master/toml.abnf>.
rust_toolchain=""
< ~/.rustup/settings.toml while IFS= read -r line; do
< "$rustup_home"/settings.toml while IFS= read -r line; do
if [[ "$line" =~ '^default_toolchain = "(.+)"$' ]]; then
rust_toolchain="${match[1]}"
break
@ -88,16 +89,20 @@ if [[ -f ~/.rustup/settings.toml ]]; then
done; unset line
if [[ -n "$rust_toolchain" ]]; then
rust_sysroot=~/.rustup/toolchains/"$rust_toolchain"
rust_sysroot="$rustup_home"/toolchains/"$rust_toolchain"
# path_append path "$rust_sysroot"/bin
path_prepend fpath "$rust_sysroot"/zsh/site-functions
path_prepend manpath "$rust_sysroot"/share/man
path_prepend ld_library_path "$rust_sysroot"/lib
unset rust_sysroot
fi
unset rust_toolchain
for rust_sysroot in "$rustup_home"/toolchains/*(/); do
# The filenames of all libraries in toolchain dirs are suffixed with their
# build hashes or the compiler identifier, so in practice conflicts are
# insanely unlikely.
path_prepend ld_library_path "$rust_sysroot"/lib
done
fi
unset rustup_home rust_toolchain rust_sysroot
path_prepend path ~/.cargo/bin

View File

@ -49,7 +49,7 @@ _plugin completions 'zsh-users/zsh-completions' "$_checkout_latest_version"
# Oh My Zsh {{{
omz_features=(key-bindings termsupport)
omz_plugins=(git extract fasd)
omz_plugins=(git)
_plugin ohmyzsh 'ohmyzsh/ohmyzsh' \
load='lib/'${^omz_features}'.zsh' \
@ -64,22 +64,35 @@ _plugin completions 'zsh-users/zsh-completions' "$_checkout_latest_version"
# fasd {{{
#unalias j
#j() {
# local _fasd_ret
# _fasd_ret="$(
# # -l: list all paths in the database (without scores)
# # -d: list only directories
# # -R: in the reverse order
# fasd -l -d -R |
# fzf --height=40% --layout=reverse --tiebreak=index --query="$*"
# )"
# if [[ -d "$_fasd_ret" ]]; then
# cd -- "$_fasd_ret"
# elif [[ -n "$_fasd_ret" ]]; then
# print -- "$_fasd_ret"
# fi
#}
if command_exists fasd; then
# Initialization taken from <https://github.com/ohmyzsh/ohmyzsh/blob/6fbad5bf72fad4ecf30ba4d4ffee62bac582f0ed/plugins/fasd/fasd.plugin.zsh>
fasd_cache="${ZSH_CACHE_DIR}/fasd-init-cache"
if [[ "${commands[fasd]}" -nt "$fasd_cache" || ! -s "$fasd_cache" ]]; then
fasd --init posix-alias zsh-hook zsh-ccomp zsh-ccomp-install zsh-wcomp zsh-wcomp-install >| "$fasd_cache"
fi
source "$fasd_cache"
unset fasd_cache
alias v='f -e "$EDITOR"'
alias o='a -e xdg-open'
# alias j='zz'
j() {
local _fasd_ret
_fasd_ret="$(
# -l: list all paths in the database (without scores)
# -d: list only directories
# -R: in the reverse order
fasd -l -d -R |
fzf --height=40% --layout=reverse --tiebreak=index --query="$*"
)"
if [[ -d "$_fasd_ret" ]]; then
cd -- "$_fasd_ret"
elif [[ -n "$_fasd_ret" ]]; then
print -- "$_fasd_ret"
fi
}
fi
# }}}