summaryrefslogtreecommitdiff
path: root/config/vim/plugin
diff options
context:
space:
mode:
authordavidovski <david@davidovski.xyz>2021-10-09 22:20:41 +0100
committerdavidovski <david@davidovski.xyz>2021-10-09 22:20:41 +0100
commit01ced0b7ce47d279789efb2dc70d1cd009ac56ad (patch)
tree6ece604b8ae3476d2d70c9c9d42f86fe607990da /config/vim/plugin
initial commit
Diffstat (limited to 'config/vim/plugin')
-rw-r--r--config/vim/plugin/colorizer.vim62
-rw-r--r--config/vim/plugin/emmet.vim191
-rw-r--r--config/vim/plugin/pickachu.vim45
-rw-r--r--config/vim/plugin/pickachu/__init__.py0
-rw-r--r--config/vim/plugin/pickachu/__pycache__/__init__.cpython-39.pycbin0 -> 142 bytes
-rw-r--r--config/vim/plugin/pickachu/__pycache__/apps.cpython-39.pycbin0 -> 1107 bytes
-rw-r--r--config/vim/plugin/pickachu/__pycache__/main.cpython-39.pycbin0 -> 719 bytes
-rw-r--r--config/vim/plugin/pickachu/__pycache__/processors.cpython-39.pycbin0 -> 1896 bytes
-rw-r--r--config/vim/plugin/pickachu/apps.py68
-rw-r--r--config/vim/plugin/pickachu/main.py36
-rw-r--r--config/vim/plugin/pickachu/processors.py80
-rw-r--r--config/vim/plugin/rainbow_parentheses.vim13
12 files changed, 495 insertions, 0 deletions
diff --git a/config/vim/plugin/colorizer.vim b/config/vim/plugin/colorizer.vim
new file mode 100644
index 0000000..4372234
--- /dev/null
+++ b/config/vim/plugin/colorizer.vim
@@ -0,0 +1,62 @@
+" colorizer.vim Colorize all text in the form #rrggbb or #rgb; entrance
+" Maintainer: lilydjwg <lilydjwg@gmail.com>
+" Version: 1.4.1
+" Licence: Vim license. See ':help license'
+" Derived From: css_color.vim
+" http://www.vim.org/scripts/script.php?script_id=2150
+" Thanks To: Niklas Hofer (Author of css_color.vim), Ingo Karkat, rykka,
+" KrzysztofUrban, blueyed, shanesmith
+" Usage:
+"
+" This plugin defines three commands:
+"
+" ColorHighlight - start/update highlighting
+" ColorClear - clear all highlights
+" ColorToggle - toggle highlights
+"
+" By default, <leader>tc is mapped to ColorToggle. If you want to use another
+" key map, do like this:
+" nmap ,tc <Plug>Colorizer
+"
+" If you want completely not to map it, set the following in your vimrc:
+" let g:colorizer_nomap = 1
+"
+" To use solid color highlight, set this in your vimrc (later change won't
+" probably take effect unless you use ':ColorHighlight!' to force update):
+" let g:colorizer_fgcontrast = -1
+" set it to 0 or 1 to use a softened foregroud color.
+"
+" If you don't want to enable colorizer at startup, set the following:
+" let g:colorizer_startup = 0
+"
+" Note: if you modify a color string in normal mode, if the cursor is still on
+" that line, it'll take 'updatetime' seconds to update. You can use
+" :ColorHighlight (or your key mapping) again to force update.
+"
+" Performace Notice: In terminal, it may take several seconds to highlight 240
+" different colors. GUI version is much quicker.
+
+" Reload guard and 'compatible' handling {{{1
+if exists("loaded_colorizer") || v:version < 700 || !(has("gui_running") || &t_Co == 256)
+ finish
+endif
+let loaded_colorizer = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+"Define commands {{{1
+command! -bar -bang ColorHighlight call colorizer#ColorHighlight(1, "<bang>")
+command! -bar ColorClear call colorizer#ColorClear()
+command! -bar ColorToggle call colorizer#ColorToggle()
+nnoremap <silent> <Plug>Colorizer :ColorToggle<CR>
+if !hasmapto("<Plug>Colorizer") && (!exists("g:colorizer_nomap") || g:colorizer_nomap == 0)
+ nmap <unique> <Leader>tc <Plug>Colorizer
+endif
+if !exists('g:colorizer_startup') || g:colorizer_startup
+ call colorizer#ColorHighlight(0)
+endif
+
+" Cleanup and modelines {{{1
+let &cpo = s:save_cpo
+" vim:ft=vim:fdm=marker:fmr={{{,}}}:
diff --git a/config/vim/plugin/emmet.vim b/config/vim/plugin/emmet.vim
new file mode 100644
index 0000000..dad03a8
--- /dev/null
+++ b/config/vim/plugin/emmet.vim
@@ -0,0 +1,191 @@
+"=============================================================================
+" File: emmet.vim
+" Author: Yasuhiro Matsumoto <mattn.jp@gmail.com>
+" Last Change: 26-Jul-2015.
+" Version: 0.86
+" WebPage: http://github.com/mattn/emmet-vim
+" Description: vim plugins for HTML and CSS hi-speed coding.
+" SeeAlso: http://emmet.io/
+" Usage:
+"
+" This is vim script support expanding abbreviation like emmet.
+" ref: http://emmet.io/
+"
+" Type abbreviation
+" +-------------------------------------
+" | html:5_
+" +-------------------------------------
+" "_" is a cursor position. and type "<c-y>," (Ctrl+y and Comma)
+" NOTE: Don't worry about key map. you can change it easily.
+" +-------------------------------------
+" | <!DOCTYPE HTML>
+" | <html lang="en">
+" | <head>
+" | <title></title>
+" | <meta charset="UTF-8">
+" | </head>
+" | <body>
+" | _
+" | </body>
+" | </html>
+" +-------------------------------------
+" Type following
+" +-------------------------------------
+" | div#foo$*2>div.bar
+" +-------------------------------------
+" And type "<c-y>,"
+" +-------------------------------------
+" |<div id="foo1">
+" | <div class="bar">_</div>
+" |</div>
+" |<div id="foo2">
+" | <div class="bar"></div>
+" |</div>
+" +-------------------------------------
+"
+" Tips:
+"
+" You can customize behavior of expanding with overriding config.
+" This configuration will be merged at loading plugin.
+"
+" let g:user_emmet_settings = {
+" \ 'indentation' : ' ',
+" \ 'perl' : {
+" \ 'aliases' : {
+" \ 'req' : 'require '
+" \ },
+" \ 'snippets' : {
+" \ 'use' : "use strict\nuse warnings\n\n",
+" \ 'warn' : "warn \"|\";",
+" \ }
+" \ }
+" \}
+"
+" You can set language attribute in html using 'emmet_settings.lang'.
+"
+" GetLatestVimScripts: 2981 1 :AutoInstall: emmet.vim
+" script type: plugin
+
+if &compatible || v:version < 702 || (exists('g:loaded_emmet_vim') && g:loaded_emmet_vim)
+ finish
+endif
+let g:loaded_emmet_vim = 1
+
+let s:save_cpo = &cpoptions
+set cpoptions&vim
+
+if !exists('g:emmet_html5')
+ let g:emmet_html5 = 1
+endif
+
+if !exists('g:emmet_docroot')
+ let g:emmet_docroot = {}
+endif
+
+if !exists('g:emmet_debug')
+ let g:emmet_debug = 0
+endif
+
+if !exists('g:emmet_curl_command')
+ let g:emmet_curl_command = 'curl -s -L -A Mozilla/5.0'
+endif
+
+if !exists('g:user_emmet_leader_key')
+ let g:user_emmet_leader_key = '<c-y>'
+endif
+
+function! s:install_plugin(mode, buffer)
+ let buffer = a:buffer ? '<buffer>' : ''
+ let items = [
+ \ {'mode': 'i', 'var': 'user_emmet_expandabbr_key', 'key': ',', 'plug': 'emmet-expand-abbr', 'func': '<c-r>=emmet#util#closePopup()<cr><c-r>=emmet#expandAbbr(0,"")<cr>'},
+ \ {'mode': 'n', 'var': 'user_emmet_expandabbr_key', 'key': ',', 'plug': 'emmet-expand-abbr', 'func': ':call emmet#expandAbbr(3,"")<cr>'},
+ \ {'mode': 'v', 'var': 'user_emmet_expandabbr_key', 'key': ',', 'plug': 'emmet-expand-abbr', 'func': ':call emmet#expandAbbr(2,"")<cr>'},
+ \ {'mode': 'i', 'var': 'user_emmet_expandword_key', 'key': ';', 'plug': 'emmet-expand-word', 'func': '<c-r>=emmet#util#closePopup()<cr><c-r>=emmet#expandAbbr(1,"")<cr>'},
+ \ {'mode': 'n', 'var': 'user_emmet_expandword_key', 'key': ';', 'plug': 'emmet-expand-word', 'func': ':call emmet#expandAbbr(1,"")<cr>'},
+ \ {'mode': 'i', 'var': 'user_emmet_update_tag', 'key': 'u', 'plug': 'emmet-update-tag', 'func': '<c-r>=emmet#util#closePopup()<cr><c-r>=emmet#updateTag()<cr>'},
+ \ {'mode': 'n', 'var': 'user_emmet_update_tag', 'key': 'u', 'plug': 'emmet-update-tag', 'func': ':call emmet#updateTag()<cr>'},
+ \ {'mode': 'i', 'var': 'user_emmet_balancetaginward_key', 'key': 'd', 'plug': 'emmet-balance-tag-inward', 'func': '<esc>:call emmet#balanceTag(1)<cr>'},
+ \ {'mode': 'n', 'var': 'user_emmet_balancetaginward_key', 'key': 'd', 'plug': 'emmet-balance-tag-inward', 'func': ':call emmet#balanceTag(1)<cr>'},
+ \ {'mode': 'v', 'var': 'user_emmet_balancetaginward_key', 'key': 'd', 'plug': 'emmet-balance-tag-inward', 'func': '<esc>:call emmet#balanceTag(1)<cr>'},
+ \ {'mode': 'i', 'var': 'user_emmet_balancetagoutward_key', 'key': 'D', 'plug': 'emmet-balance-tag-outword', 'func': '<esc>:call emmet#balanceTag(-1)<cr>'},
+ \ {'mode': 'n', 'var': 'user_emmet_balancetagoutward_key', 'key': 'D', 'plug': 'emmet-balance-tag-outword', 'func': ':call emmet#balanceTag(-1)<cr>'},
+ \ {'mode': 'v', 'var': 'user_emmet_balancetagoutward_key', 'key': 'D', 'plug': 'emmet-balance-tag-outword', 'func': '<esc>:call emmet#balanceTag(-1)<cr>'},
+ \ {'mode': 'i', 'var': 'user_emmet_next_key', 'key': 'n', 'plug': 'emmet-move-next', 'func': '<c-r>=emmet#util#closePopup()<cr><c-r>=emmet#moveNextPrev(0)<cr>'},
+ \ {'mode': 'n', 'var': 'user_emmet_next_key', 'key': 'n', 'plug': 'emmet-move-next', 'func': ':call emmet#moveNextPrev(0)<cr>'},
+ \ {'mode': 'i', 'var': 'user_emmet_prev_key', 'key': 'N', 'plug': 'emmet-move-prev', 'func': '<c-r>=emmet#util#closePopup()<cr><c-r>=emmet#moveNextPrev(1)<cr>'},
+ \ {'mode': 'n', 'var': 'user_emmet_prev_key', 'key': 'N', 'plug': 'emmet-move-prev', 'func': ':call emmet#moveNextPrev(1)<cr>'},
+ \ {'mode': 'i', 'var': '', 'key': '', 'plug': 'emmet-move-next-item', 'func': '<esc>:call emmet#moveNextPrevItem(0)<cr>'},
+ \ {'mode': 'n', 'var': '', 'key': '', 'plug': 'emmet-move-next-item', 'func': ':call emmet#moveNextPrevItem(0)<cr>'},
+ \ {'mode': 'i', 'var': '', 'key': '', 'plug': 'emmet-move-prev-item', 'func': '<esc>:call emmet#moveNextPrevItem(1)<cr>'},
+ \ {'mode': 'n', 'var': '', 'key': '', 'plug': 'emmet-move-prev-item', 'func': ':call emmet#moveNextPrevItem(1)<cr>'},
+ \ {'mode': 'i', 'var': 'user_emmet_imagesize_key', 'key': 'i', 'plug': 'emmet-image-size', 'func': '<c-r>=emmet#util#closePopup()<cr><c-r>=emmet#imageSize()<cr>'},
+ \ {'mode': 'n', 'var': 'user_emmet_imagesize_key', 'key': 'i', 'plug': 'emmet-image-size', 'func': ':call emmet#imageSize()<cr>'},
+ \ {'mode': 'i', 'var': 'user_emmet_imageencode_key', 'key': 'I', 'plug': 'emmet-image-encode', 'func': '<c-r>=emmet#util#closePopup()<cr><c-r>=emmet#imageEncode()<cr>'},
+ \ {'mode': 'n', 'var': 'user_emmet_imageencode_key', 'key': 'I', 'plug': 'emmet-image-encode', 'func': ':call emmet#imageEncode()<cr>'},
+ \ {'mode': 'i', 'var': 'user_emmet_togglecomment_key', 'key': '/', 'plug': 'emmet-toggle-comment', 'func': '<c-r>=emmet#util#closePopup()<cr><c-r>=emmet#toggleComment()<cr>'},
+ \ {'mode': 'n', 'var': 'user_emmet_togglecomment_key', 'key': '/', 'plug': 'emmet-toggle-comment', 'func': ':call emmet#toggleComment()<cr>'},
+ \ {'mode': 'i', 'var': 'user_emmet_splitjointag_key', 'key': 'j', 'plug': 'emmet-split-join-tag', 'func': '<esc>:call emmet#splitJoinTag()<cr>'},
+ \ {'mode': 'n', 'var': 'user_emmet_splitjointag_key', 'key': 'j', 'plug': 'emmet-split-join-tag', 'func': ':call emmet#splitJoinTag()<cr>'},
+ \ {'mode': 'i', 'var': 'user_emmet_removetag_key', 'key': 'k', 'plug': 'emmet-remove-tag', 'func': '<c-r>=emmet#util#closePopup()<cr><c-r>=emmet#removeTag()<cr>'},
+ \ {'mode': 'n', 'var': 'user_emmet_removetag_key', 'key': 'k', 'plug': 'emmet-remove-tag', 'func': ':call emmet#removeTag()<cr>'},
+ \ {'mode': 'i', 'var': 'user_emmet_anchorizeurl_key', 'key': 'a', 'plug': 'emmet-anchorize-url', 'func': '<c-r>=emmet#util#closePopup()<cr><c-r>=emmet#anchorizeURL(0)<cr>'},
+ \ {'mode': 'n', 'var': 'user_emmet_anchorizeurl_key', 'key': 'a', 'plug': 'emmet-anchorize-url', 'func': ':call emmet#anchorizeURL(0)<cr>'},
+ \ {'mode': 'i', 'var': 'user_emmet_anchorizesummary_key', 'key': 'A', 'plug': 'emmet-anchorize-summary', 'func': '<c-r>=emmet#util#closePopup()<cr><c-r>=emmet#anchorizeURL(1)<cr>'},
+ \ {'mode': 'n', 'var': 'user_emmet_anchorizesummary_key', 'key': 'A', 'plug': 'emmet-anchorize-summary', 'func': ':call emmet#anchorizeURL(1)<cr>'},
+ \ {'mode': 'i', 'var': 'user_emmet_mergelines_key', 'key': 'm', 'plug': 'emmet-merge-lines', 'func': '<c-r>=emmet#util#closePopup()<cr><c-r>=emmet#mergeLines()<cr>'},
+ \ {'mode': 'n', 'var': 'user_emmet_mergelines_key', 'key': 'm', 'plug': 'emmet-merge-lines', 'func': ':call emmet#mergeLines()<cr>'},
+ \ {'mode': 'v', 'var': 'user_emmet_codepretty_key', 'key': 'c', 'plug': 'emmet-code-pretty', 'func': ':call emmet#codePretty()<cr>'},
+ \]
+
+ let only_plug = get(g:, 'emmet_install_only_plug', 0)
+ for item in items
+ if a:mode !=# 'a' && stridx(a:mode, item.mode) == -1
+ continue
+ endif
+ exe item.mode . 'noremap '. buffer .' <plug>(' . item.plug . ') ' . item.func
+ if item.var != '' && !only_plug
+ if exists('g:' . item.var)
+ let key = eval('g:' . item.var)
+ else
+ let key = g:user_emmet_leader_key . item.key
+ endif
+ if !hasmapto('<plug>(' . item.plug . ')', item.mode) && !len(maparg(key, item.mode))
+ exe item.mode . 'map ' . buffer . ' <unique> ' . key . ' <plug>(' . item.plug . ')'
+ endif
+ endif
+ endfor
+
+ if exists('g:user_emmet_complete_tag') && g:user_emmet_complete_tag
+ if get(g:, 'user_emmet_install_global', 1)
+ set omnifunc=emmet#completeTag
+ else
+ setlocal omnifunc=emmet#completeTag
+ endif
+ endif
+endfunction
+
+command! -nargs=0 -bar EmmetInstall call <SID>install_plugin(get(g:, 'user_emmet_mode', 'a'), 1)
+
+if get(g:, 'user_emmet_install_global', 1)
+ call s:install_plugin(get(g:, 'user_emmet_mode', 'a'), 0)
+endif
+
+if get(g:, 'user_emmet_install_command', 1)
+ command! -nargs=1 Emmet call emmet#expandAbbr(4, <q-args>)
+endif
+
+function! s:setup_styledEmmetAbbreviation() abort
+ if index(['javascript', 'javascriptreact', 'typescript', 'typescriptreact'], &filetype) != -1
+ syntax match styledEmmetAbbreviation "[a-z0-9#+!%]\+" containedin=styledDefinition contained
+ endif
+endfunction
+
+augroup ___emmet_setup___
+ au!
+ autocmd Syntax * call s:setup_styledEmmetAbbreviation()
+augroup END
+
+let &cpoptions = s:save_cpo
+unlet s:save_cpo
+
+" vim:set et:
diff --git a/config/vim/plugin/pickachu.vim b/config/vim/plugin/pickachu.vim
new file mode 100644
index 0000000..259bac7
--- /dev/null
+++ b/config/vim/plugin/pickachu.vim
@@ -0,0 +1,45 @@
+"Script: Pickachu
+"Version: 0.0.1
+"Copyright: Copyright (C) 2018 Doug Beney
+"Licence:
+"Website: https://dougie.io
+
+if !has('python3')
+ echo "You need Vim Python3 support to use this plugin. If you're using NeoVim, try running `pip3 install neovim` to resolve this issue."
+endif
+
+if !exists('g:pickachu_default_app')
+ let g:pickachu_default_app = "color"
+endif
+
+if !exists("g:pickachu_default_command")
+ let g:pickachu_default_command = "zenity"
+endif
+
+if !exists("g:pickachu_default_date_format")
+ let g:pickachu_default_date_format = "%m/%d/%Y"
+endif
+
+if !exists("g:pickachu_default_color_format")
+ let g:pickachu_default_color_format = "hex"
+endif
+
+function! s:pickachuCompletion(ArgLead, CmdLine, CursorPos)
+ let options = ['color', 'date', 'file']
+ return options
+endfunction
+
+command! -nargs=* -complete=customlist,<SID>pickachuCompletion Pickachu call Pickachu(<f-args>)
+
+python3 import sys
+python3 import vim
+python3 sys.path.append(vim.eval('expand("<sfile>:h")'))
+
+function! Pickachu(...)
+python3 << EOF
+from pickachu.main import MainFunction
+MainFunction()
+EOF
+endfunction
+
+" vim: noexpandtab
diff --git a/config/vim/plugin/pickachu/__init__.py b/config/vim/plugin/pickachu/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/config/vim/plugin/pickachu/__init__.py
diff --git a/config/vim/plugin/pickachu/__pycache__/__init__.cpython-39.pyc b/config/vim/plugin/pickachu/__pycache__/__init__.cpython-39.pyc
new file mode 100644
index 0000000..c18ad9c
--- /dev/null
+++ b/config/vim/plugin/pickachu/__pycache__/__init__.cpython-39.pyc
Binary files differ
diff --git a/config/vim/plugin/pickachu/__pycache__/apps.cpython-39.pyc b/config/vim/plugin/pickachu/__pycache__/apps.cpython-39.pyc
new file mode 100644
index 0000000..c564bcc
--- /dev/null
+++ b/config/vim/plugin/pickachu/__pycache__/apps.cpython-39.pyc
Binary files differ
diff --git a/config/vim/plugin/pickachu/__pycache__/main.cpython-39.pyc b/config/vim/plugin/pickachu/__pycache__/main.cpython-39.pyc
new file mode 100644
index 0000000..c35190e
--- /dev/null
+++ b/config/vim/plugin/pickachu/__pycache__/main.cpython-39.pyc
Binary files differ
diff --git a/config/vim/plugin/pickachu/__pycache__/processors.cpython-39.pyc b/config/vim/plugin/pickachu/__pycache__/processors.cpython-39.pyc
new file mode 100644
index 0000000..1cf1153
--- /dev/null
+++ b/config/vim/plugin/pickachu/__pycache__/processors.cpython-39.pyc
Binary files differ
diff --git a/config/vim/plugin/pickachu/apps.py b/config/vim/plugin/pickachu/apps.py
new file mode 100644
index 0000000..00a6826
--- /dev/null
+++ b/config/vim/plugin/pickachu/apps.py
@@ -0,0 +1,68 @@
+import vim
+import subprocess
+from . import processors
+
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# name: apps.py
+# description: this function contains a dictionary object
+# where you can easily add new apps with processor
+# functions to handle their output. Note: a
+# processor is optional.
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+
+ZENITY_COMMAND = vim.eval("g:pickachu_default_command")
+# Note: This is not the final date format that displays on
+# the users' buffer. This is the format we force
+# Zenity/Qarma to provide us.
+RETURNED_DATE_FORMAT = "%m/%d/%Y"
+if ZENITY_COMMAND == 'qarma':
+ RETURNED_DATE_FORMAT = "MM/dd/yy"
+
+apps = {
+ 'date': {
+ 'cmd': ZENITY_COMMAND,
+ 'processor': processors.dateProcessor,
+ 'options': [
+ '--calendar',
+ '--date-format=' + RETURNED_DATE_FORMAT
+ ]
+ },
+ 'file': {
+ 'cmd': ZENITY_COMMAND,
+ 'options': [
+ '--file-selection'
+ ]
+ },
+ 'color': {
+ 'cmd': ZENITY_COMMAND,
+ 'options': [
+ '--color-selection'
+ ],
+ 'processor': processors.colorProcessor
+ }
+}
+
+def runApp(choosenApp, format=None):
+ app = apps.get(choosenApp, None)
+ if app:
+ output = None
+ try:
+ command_array = [app['cmd']]
+ if app.get('options', False):
+ for option in app['options']:
+ command_array.append(option)
+ # Logging
+ command_array.append('2> /tmp/pickachu_log')
+ output = subprocess.check_output(command_array).decode('utf-8')
+ except:
+ return None
+
+ if app.get('processor', None):
+ if format:
+ return app['processor'](output.rstrip(), format)
+ else:
+ return app['processor'](output.rstrip())
+ else:
+ return output.rstrip()
+ else:
+ print("App does not exist.")
diff --git a/config/vim/plugin/pickachu/main.py b/config/vim/plugin/pickachu/main.py
new file mode 100644
index 0000000..d9a42b3
--- /dev/null
+++ b/config/vim/plugin/pickachu/main.py
@@ -0,0 +1,36 @@
+import vim
+from . import apps
+
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# name: main.py
+# description: This file evaluates the command arguments
+# provided by the user, calls the runApp function,
+# and inserts valid output to the user's buffer.
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+
+DEFAULT_APP = vim.eval('g:pickachu_default_app')
+
+
+def MainFunction():
+ # This section is for getting the
+ # arguments from the user's Vim
+ # command.
+ arglength = int(vim.eval('a:0'))
+ CHOOSEN_APP = DEFAULT_APP
+ CHOOSEN_FORMAT = None
+ if arglength > 0:
+ CHOOSEN_APP = vim.eval('a:1')
+ if arglength > 1:
+ CHOOSEN_FORMAT = vim.eval('a:2')
+
+ # We run apps.py's runApp function to get an output.
+ output = apps.runApp(CHOOSEN_APP, CHOOSEN_FORMAT)
+
+ # Now, if runApp gave us an output, we can use the
+ # Vim API to print the output to the user's buffer.
+ if output:
+ pos_y, pos_x = vim.current.window.cursor
+ vim.current.line = vim.current.line[:pos_x+1] + output + vim.current.line[pos_x+1:]
+ vim.current.window.cursor = (pos_y, pos_x + len(output))
+ else:
+ print('Pickachu - Canceled')
diff --git a/config/vim/plugin/pickachu/processors.py b/config/vim/plugin/pickachu/processors.py
new file mode 100644
index 0000000..0fe04c1
--- /dev/null
+++ b/config/vim/plugin/pickachu/processors.py
@@ -0,0 +1,80 @@
+import vim
+from datetime import datetime
+
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# name: processors.py
+# description: this file contains functions that process data
+# from the runapp function (in app.py).
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+
+DEFAULT_DATE_FORMAT = vim.eval("g:pickachu_default_date_format")
+DEFAULT_COLOR_FORMAT = vim.eval("g:pickachu_default_color_format")
+
+def dateProcessor(input, format=DEFAULT_DATE_FORMAT):
+ try:
+ dateObj = datetime.strptime(input, '%m/%d/%Y')
+ except(ValueError):
+ dateObj = datetime.strptime(input, '%m/%d/%y')
+ return dateObj.strftime(format)
+
+def colorProcessor(input, format=DEFAULT_COLOR_FORMAT):
+ # The system color picker returned an rgba value
+ if 'rgba' in input:
+ strip = input.strip('rgba)(')
+ array = strip.split(',')
+ # Round the alpha value to two decimal placed
+ array[3] = round(float(array[3]), 2)
+ rgba_string = "rgba("
+ values = ",".join(str(x) for x in array)
+ rgba_string += values + ")"
+ return rgba_string
+ # The system color picker returned an rgb value
+ elif 'rgb' in input:
+ # RGB as input
+ if format == 'rgb':
+ return input
+ else:
+ # Strip 'rgb' and parenthesis
+ strip = input.strip('rgb)(')
+ array = strip.split(',')
+
+ if format == 'hex':
+ hex = '#%02x%02x%02x' % (int(array[0]), int(array[1]), int(array[2]))
+ return hex.upper()
+ elif format == 'rgba':
+ rgba_string = "rgba("
+ array.append(1)
+ values = ",".join(str(x) for x in array)
+ rgba_string += values + ")"
+ return rgba_string
+ return array
+ # The system olor picker returned a hex
+ elif '#' in input:
+ # If there is a '#' in input,
+ # they are most likely using Qarma instead of Zenity
+ # or any other program that outputs hex
+ if format == 'hex':
+ return input
+ else:
+ hex = input.lstrip('#')
+ rgb_array = tuple(int(hex[i:i+2], 16) for i in (0, 2 ,4))
+
+ if format == 'rgb':
+ rgb_string = "rgb("
+ for i in range(0, len(rgb_array)):
+ rgb_string += str(rgb_array[i])
+ if i < len(rgb_array) - 1:
+ rgb_string += ", "
+ else:
+ rgb_string += ")"
+ return rgb_string
+ elif format == 'rgba':
+ rgba_string = "rgba("
+ for i in range(0, len(rgb_array)):
+ rgba_string += str(rgb_array[i])
+ if i < len(rgb_array) - 1:
+ rgba_string += ", "
+ else:
+ rgba_string += ", 1)"
+ return rgba_string
+ return None
diff --git a/config/vim/plugin/rainbow_parentheses.vim b/config/vim/plugin/rainbow_parentheses.vim
new file mode 100644
index 0000000..20ce8e5
--- /dev/null
+++ b/config/vim/plugin/rainbow_parentheses.vim
@@ -0,0 +1,13 @@
+"==============================================================================
+" Description: Rainbow colors for parentheses, based on rainbow_parenthsis.vim
+" by Martin Krischik and others.
+"==============================================================================
+" GetLatestVimScripts: 3772 1 :AutoInstall: rainbow_parentheses.zip
+
+com! RainbowParenthesesToggle cal rainbow_parentheses#toggle()
+com! RainbowParenthesesToggleAll cal rainbow_parentheses#toggleall()
+com! RainbowParenthesesActivate cal rainbow_parentheses#activate()
+com! RainbowParenthesesLoadRound cal rainbow_parentheses#load(0)
+com! RainbowParenthesesLoadSquare cal rainbow_parentheses#load(1)
+com! RainbowParenthesesLoadBraces cal rainbow_parentheses#load(2)
+com! RainbowParenthesesLoadChevrons cal rainbow_parentheses#load(3)