Add dark theme
This commit is contained in:
parent
18428929da
commit
ebb2cab9bc
9 changed files with 182 additions and 61 deletions
|
@ -1,6 +1,8 @@
|
||||||
import json
|
import json
|
||||||
import os
|
import os
|
||||||
|
import re
|
||||||
from os import path
|
from os import path
|
||||||
|
from collections import OrderedDict
|
||||||
|
|
||||||
def find_in_parent(filename, starting_dir=None):
|
def find_in_parent(filename, starting_dir=None):
|
||||||
'''Look up the directory tree until you find a file.'''
|
'''Look up the directory tree until you find a file.'''
|
||||||
|
@ -69,3 +71,99 @@ def get_namespace(dirname):
|
||||||
|
|
||||||
return namespace + convert_path(remainder)
|
return namespace + convert_path(remainder)
|
||||||
|
|
||||||
|
def format_method(snip):
|
||||||
|
'''Convert expanded snippet into method name and args.'''
|
||||||
|
params = get_params_map(snip)
|
||||||
|
|
||||||
|
if len(params) is 0:
|
||||||
|
return
|
||||||
|
|
||||||
|
sorted_params = sort_params(params.values())
|
||||||
|
|
||||||
|
delete_param_tags(snip, params)
|
||||||
|
place_to_insert_params = snip.snippet_start[0] + params.keys()[0]
|
||||||
|
snip.buffer[place_to_insert_params:place_to_insert_params] = sorted_params
|
||||||
|
|
||||||
|
arguments = generate_arguments(sorted_params)
|
||||||
|
arguments[-1] = arguments[-1].replace(',', '')
|
||||||
|
args_line = snip.snippet_end[0] - 3
|
||||||
|
snip.buffer[args_line:args_line + 1] = arguments
|
||||||
|
|
||||||
|
def delete_param_tags(snip, params):
|
||||||
|
'''Sort @param PHPDoc tags so optional ones come later.'''
|
||||||
|
for idx, relative_line_number in enumerate(params.keys()):
|
||||||
|
# Have to subtract idx, because we are removing a line each time.
|
||||||
|
line_number = relative_line_number + snip.snippet_start[0] - idx
|
||||||
|
snip.buffer[line_number:line_number + 1] = []
|
||||||
|
|
||||||
|
def get_params_map(snip):
|
||||||
|
'''Get a map of @param PHPDoc tags, line_number: line.'''
|
||||||
|
lines = get_snippet_lines(snip)
|
||||||
|
return OrderedDict([[k, v] for k, v in enumerate(lines) if '@param' in v])
|
||||||
|
|
||||||
|
def generate_arguments(params):
|
||||||
|
'''Generate the function arguments from PHPDoc @params.'''
|
||||||
|
return [get_argument_line(x) for x in params]
|
||||||
|
|
||||||
|
def sort_params(params):
|
||||||
|
'''Sort params to put optional arguments at the end.'''
|
||||||
|
def sorter(left, right):
|
||||||
|
[left_is_optional, right_is_optional] = \
|
||||||
|
[is_union_with_null(x) for x in [left, right]]
|
||||||
|
|
||||||
|
if (left_is_optional and not right_is_optional):
|
||||||
|
return 1
|
||||||
|
if (not left_is_optional and right_is_optional):
|
||||||
|
return -1
|
||||||
|
|
||||||
|
return 0
|
||||||
|
|
||||||
|
return sorted(params, sorter)
|
||||||
|
|
||||||
|
def get_snippet_lines(snip):
|
||||||
|
'''Get the relevant slice of a snippet buffer.'''
|
||||||
|
start_line = snip.snippet_start[0]
|
||||||
|
finish_line = snip.snippet_end[0]
|
||||||
|
return snip.buffer[start_line:finish_line]
|
||||||
|
|
||||||
|
def get_argument_line(param):
|
||||||
|
'''Convert line from @param tag to method parameter.'''
|
||||||
|
expression = '\s*\*\s+@param\s+([^\s]+)\s+(\$[^\s]+).*'
|
||||||
|
result = re.search(expression, param)
|
||||||
|
|
||||||
|
type = map_type(result.group(1))
|
||||||
|
name = result.group(2)
|
||||||
|
|
||||||
|
return format_argument_line(type, name)
|
||||||
|
|
||||||
|
def map_type(type):
|
||||||
|
'''Convert PHPDoc type declaration into a PHP type hint.'''
|
||||||
|
if (is_union_with_null(type)):
|
||||||
|
return map_type(type.replace('|null', ''))
|
||||||
|
if (is_union_type(type)):
|
||||||
|
# PHP doesn't support union type hints yet.
|
||||||
|
return None
|
||||||
|
if (is_array_type(type)):
|
||||||
|
# PHP doesn't have complex generics yet.
|
||||||
|
return 'array'
|
||||||
|
# A plain type
|
||||||
|
return type
|
||||||
|
|
||||||
|
def is_union_with_null(type):
|
||||||
|
'''Test if PHPDoc type has a null option.'''
|
||||||
|
return '|null' in type
|
||||||
|
|
||||||
|
def is_union_type(type):
|
||||||
|
'''Test if PHPDoc type is any kind of union.'''
|
||||||
|
return '|' in type
|
||||||
|
|
||||||
|
def is_array_type(type):
|
||||||
|
'''Test if PHPDoc type is an array...'''
|
||||||
|
return '[]' in type
|
||||||
|
|
||||||
|
def format_argument_line(type, name):
|
||||||
|
if (type is None):
|
||||||
|
return ' {},'.format(name)
|
||||||
|
else:
|
||||||
|
return ' {} {},'.format(type, name)
|
||||||
|
|
||||||
|
|
|
@ -119,12 +119,9 @@ install_vim_plugins () {
|
||||||
|
|
||||||
local PLUGINS=(
|
local PLUGINS=(
|
||||||
"joonty/vdebug"
|
"joonty/vdebug"
|
||||||
"scrooloose/syntastic"
|
"vim-syntastic/syntastic"
|
||||||
"groenewege/vim-less"
|
|
||||||
"pangloss/vim-javascript"
|
"pangloss/vim-javascript"
|
||||||
"sirver/ultisnips"
|
"sirver/ultisnips"
|
||||||
"JulesWang/css.vim"
|
|
||||||
"mxw/vim-jsx"
|
|
||||||
)
|
)
|
||||||
local BASE_DIR="$DOTFILES_ROOT/vim/vim.symlink/bundle"
|
local BASE_DIR="$DOTFILES_ROOT/vim/vim.symlink/bundle"
|
||||||
local GIT_HOST="git@github.com"
|
local GIT_HOST="git@github.com"
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
global !p
|
global !p
|
||||||
from mbutils import get_namespace
|
from mbutils import get_namespace, format_method
|
||||||
import os
|
import os
|
||||||
|
|
||||||
def full_path(filename):
|
def full_path(filename):
|
||||||
|
@ -49,10 +49,18 @@ function ${1}(
|
||||||
\}
|
\}
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
post_jump "if (snip.tabstop == 0): format_method(snip)"
|
||||||
snippet pubf
|
snippet pubf
|
||||||
public function ${1}(
|
/**
|
||||||
${2}
|
* ${2:Short description...}
|
||||||
) \{
|
*
|
||||||
|
* ${3:A slightly longer description of what you want to do. This will automatically be wrapped}
|
||||||
|
*
|
||||||
|
* ${4:@tags}
|
||||||
|
*/
|
||||||
|
public function ${1:methodName}(
|
||||||
|
...\$args
|
||||||
|
):returnType \{
|
||||||
$0
|
$0
|
||||||
\}
|
\}
|
||||||
endsnippet
|
endsnippet
|
||||||
|
@ -72,3 +80,7 @@ private function ${1}(
|
||||||
$0
|
$0
|
||||||
\}
|
\}
|
||||||
endsnippet
|
endsnippet
|
||||||
|
|
||||||
|
snippet @param
|
||||||
|
@param ${1:Type}${2:|null} \$${3:name} ${4:Description}
|
||||||
|
endsnippet
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
set background=dark
|
set background=light
|
||||||
hi clear
|
hi clear
|
||||||
|
|
||||||
if exists("syntax_on")
|
if exists("syntax_on")
|
||||||
|
@ -55,6 +55,14 @@ hi ZshSubstDelim cterm=NONE ctermfg=0 ctermbg=NONE
|
||||||
hi xmlProcessingDelim cterm=NONE ctermfg=0 ctermbg=NONE
|
hi xmlProcessingDelim cterm=NONE ctermfg=0 ctermbg=NONE
|
||||||
hi xmlAttribPunct cterm=NONE ctermfg=0 ctermbg=NONE
|
hi xmlAttribPunct cterm=NONE ctermfg=0 ctermbg=NONE
|
||||||
|
|
||||||
|
" Residual Markdown colors
|
||||||
|
hi markdownH1 cterm=NONE ctermbg=NONE ctermfg=0
|
||||||
|
hi markdownH2 cterm=NONE ctermbg=NONE ctermfg=0
|
||||||
|
hi markdownH3 cterm=NONE ctermbg=NONE ctermfg=0
|
||||||
|
hi markdownH4 cterm=NONE ctermbg=NONE ctermfg=0
|
||||||
|
hi markdownH5 cterm=NONE ctermbg=NONE ctermfg=0
|
||||||
|
hi markdownH6 cterm=NONE ctermbg=NONE ctermfg=0
|
||||||
|
|
||||||
" Miscellaneous leftovers
|
" Miscellaneous leftovers
|
||||||
hi helpNote cterm=NONE ctermfg=0 ctermbg=NONE
|
hi helpNote cterm=NONE ctermfg=0 ctermbg=NONE
|
||||||
hi MatchParen cterm=NONE ctermfg=0 ctermbg=5
|
hi MatchParen cterm=NONE ctermfg=0 ctermbg=5
|
||||||
|
@ -128,15 +136,3 @@ hi SyntasticWarningSign cterm=NONE ctermbg=1 ctermfg=1
|
||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
hi snipLeadingSpaces cterm=NONE ctermbg=NONE ctermfg=NONE
|
hi snipLeadingSpaces cterm=NONE ctermbg=NONE ctermfg=NONE
|
||||||
|
|
||||||
""""""""""
|
|
||||||
" Markdown
|
|
||||||
""""""""""
|
|
||||||
|
|
||||||
hi markdownH1 cterm=NONE ctermbg=NONE ctermfg=0
|
|
||||||
hi markdownH2 cterm=NONE ctermbg=NONE ctermfg=0
|
|
||||||
hi markdownH3 cterm=NONE ctermbg=NONE ctermfg=0
|
|
||||||
hi markdownH4 cterm=NONE ctermbg=NONE ctermfg=0
|
|
||||||
hi markdownH5 cterm=NONE ctermbg=NONE ctermfg=0
|
|
||||||
hi markdownH6 cterm=NONE ctermbg=NONE ctermfg=0
|
|
||||||
|
|
||||||
|
|
56
vim/vim.symlink/colors/maxbucknell_dark.vim
Normal file
56
vim/vim.symlink/colors/maxbucknell_dark.vim
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
set background=dark
|
||||||
|
hi clear
|
||||||
|
|
||||||
|
if exists("syntax on")
|
||||||
|
syntax reset
|
||||||
|
endif
|
||||||
|
|
||||||
|
runtime "colors/maxbucknell.vim"
|
||||||
|
|
||||||
|
let g:colors_name = "maxbucknell_dark"
|
||||||
|
|
||||||
|
" Make everything white by default
|
||||||
|
hi Normal cterm=NONE ctermfg=7 ctermbg=NONE
|
||||||
|
hi Type cterm=NONE ctermfg=7 ctermbg=NONE
|
||||||
|
hi Keyword cterm=NONE ctermfg=7 ctermbg=NONE
|
||||||
|
hi Operator cterm=NONE ctermfg=7 ctermbg=NONE
|
||||||
|
hi Special cterm=NONE ctermfg=7 ctermbg=NONE
|
||||||
|
hi Statement cterm=NONE ctermfg=7 ctermbg=NONE
|
||||||
|
hi Identifier cterm=NONE ctermfg=7 ctermbg=NONE
|
||||||
|
hi Constant cterm=NONE ctermfg=7 ctermbg=NONE
|
||||||
|
hi Define cterm=NONE ctermfg=7 ctermbg=NONE
|
||||||
|
hi Include cterm=NONE ctermfg=7 ctermbg=NONE
|
||||||
|
hi Macro cterm=NONE ctermfg=7 ctermbg=NONE
|
||||||
|
|
||||||
|
" Residual Less colors
|
||||||
|
hi lessFunction cterm=NONE ctermfg=7 ctermbg=NONE
|
||||||
|
hi lessCssAttribute cterm=NONE ctermfg=7 ctermbg=NONE
|
||||||
|
|
||||||
|
" Residual Vim colors
|
||||||
|
hi VimSet cterm=NONE ctermfg=7 ctermbg=NONE
|
||||||
|
hi VimOption cterm=NONE ctermfg=7 ctermbg=NONE
|
||||||
|
hi VimHiAttrib cterm=NONE ctermfg=7 ctermbg=NONE
|
||||||
|
|
||||||
|
" Residual Zsh colors
|
||||||
|
hi ZshDeref cterm=NONE ctermfg=7 ctermbg=NONE
|
||||||
|
hi ZshShortDeref cterm=NONE ctermfg=7 ctermbg=NONE
|
||||||
|
hi ZshSubstDelim cterm=NONE ctermfg=7 ctermbg=NONE
|
||||||
|
|
||||||
|
" Residual XML colors
|
||||||
|
hi xmlProcessingDelim cterm=NONE ctermfg=7 ctermbg=NONE
|
||||||
|
hi xmlAttribPunct cterm=NONE ctermfg=7 ctermbg=NONE
|
||||||
|
|
||||||
|
" Miscellaneous leftovers
|
||||||
|
hi helpNote cterm=NONE ctermfg=7 ctermbg=NONE
|
||||||
|
hi MatchParen cterm=NONE ctermfg=7 ctermbg=5
|
||||||
|
|
||||||
|
" Line numbers are grey
|
||||||
|
hi LineNr cterm=NONE ctermfg=8 ctermbg=NONE
|
||||||
|
"
|
||||||
|
" Residual Markdown colors
|
||||||
|
hi markdownH1 cterm=NONE ctermbg=NONE ctermfg=7
|
||||||
|
hi markdownH2 cterm=NONE ctermbg=NONE ctermfg=7
|
||||||
|
hi markdownH3 cterm=NONE ctermbg=NONE ctermfg=7
|
||||||
|
hi markdownH4 cterm=NONE ctermbg=NONE ctermfg=7
|
||||||
|
hi markdownH5 cterm=NONE ctermbg=NONE ctermfg=7
|
||||||
|
hi markdownH6 cterm=NONE ctermbg=NONE ctermfg=7
|
|
@ -388,7 +388,7 @@ let g:UltiSnipsJumpBackwardTrigger="<S-tab>"
|
||||||
""""""""
|
""""""""
|
||||||
|
|
||||||
let g:vdebug_options={}
|
let g:vdebug_options={}
|
||||||
let g:vdebug_options['break_on_open']=0
|
let g:vdebug_options['break_on_open']=1
|
||||||
let g:vdebug_options['ide_key']='docker'
|
let g:vdebug_options['ide_key']='docker'
|
||||||
let g:vdebug_options['port']=9000
|
let g:vdebug_options['port']=9000
|
||||||
let g:vdebug_options['timeout']=300
|
let g:vdebug_options['timeout']=300
|
||||||
|
|
|
@ -1,8 +1,3 @@
|
||||||
! Remove caps lock
|
|
||||||
remove Lock = Caps_Lock
|
|
||||||
keysym Caps_Lock = Control_L
|
|
||||||
add Control = Control_L
|
|
||||||
|
|
||||||
! Fix some lingering keyboard layout issues
|
! Fix some lingering keyboard layout issues
|
||||||
keycode 94 = grave asciitilde
|
keycode 94 = grave asciitilde
|
||||||
|
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
Subproject commit 8318b8a3b42a236c3c7c1d37c3e256655fd6967d
|
Subproject commit fb28eaf1d6c3c697f1e9721ee9ec911b8d0118ec
|
|
@ -119,39 +119,6 @@ autoload -U colors && colors
|
||||||
|
|
||||||
# We set the prompt in the line editor function.
|
# We set the prompt in the line editor function.
|
||||||
|
|
||||||
## SSH Agent
|
|
||||||
|
|
||||||
# Start SSH Agent and set relevant variables
|
|
||||||
function start-agent {
|
|
||||||
echo "Initialising new SSH Agent..."
|
|
||||||
rm ~/.ssh/redbox-docker-socket
|
|
||||||
ssh-agent -s -a $HOME/.ssh/redbox-docker-socket | sed 's/^echo/# echo/' > "$SSH_ENV"
|
|
||||||
echo "Success!"
|
|
||||||
chmod 600 "$SSH_ENV"
|
|
||||||
. $SSH_ENV > /dev/null
|
|
||||||
ssh-add "$HOME/.ssh/id_$(nice-hostname)"
|
|
||||||
}
|
|
||||||
|
|
||||||
# If we may have loaded config, let's just check that
|
|
||||||
function test-identities {
|
|
||||||
if ! ssh-add -l > /dev/null; then
|
|
||||||
start-agent
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# Start SSH Agent if it's not already running.
|
|
||||||
#
|
|
||||||
# Also add the id_(nice-hostname) identity.
|
|
||||||
export SSH_ENV="$HOME/.ssh/environment"
|
|
||||||
if [[ -f $SSH_ENV ]]; then
|
|
||||||
. $SSH_ENV > /dev/null
|
|
||||||
test-identities
|
|
||||||
else
|
|
||||||
start-agent
|
|
||||||
fi
|
|
||||||
|
|
||||||
## Line Editing
|
|
||||||
|
|
||||||
# Use Vi key bindings rather than emacs.
|
# Use Vi key bindings rather than emacs.
|
||||||
bindkey -v
|
bindkey -v
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue