diff --git a/vim/bundle/eclim/autoload/eclim.vim b/vim/bundle/eclim/autoload/eclim.vim
deleted file mode 100644
index 08d5632..0000000
--- a/vim/bundle/eclim/autoload/eclim.vim
+++ /dev/null
@@ -1,588 +0,0 @@
-" Author: Eric Van Dewoestine
-"
-" Description: {{{
-" Plugin that integrates vim with the eclipse plugin eclim (ECLipse
-" IMproved).
-"
-" This plugin contains shared functions that can be used regardless of the
-" current file type being edited.
-"
-" License:
-"
-" Copyright (C) 2005 - 2014 Eric Van Dewoestine
-"
-" This program is free software: you can redistribute it and/or modify
-" it under the terms of the GNU General Public License as published by
-" the Free Software Foundation, either version 3 of the License, or
-" (at your option) any later version.
-"
-" This program is distributed in the hope that it will be useful,
-" but WITHOUT ANY WARRANTY; without even the implied warranty of
-" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-" GNU General Public License for more details.
-"
-" You should have received a copy of the GNU General Public License
-" along with this program. If not, see .
-"
-" }}}
-
-" Script Variables {{{
- let s:echo_connection_errors = 1
-" }}}
-
-" Script Variables {{{
- let s:command_ping = '-command ping'
- let s:command_settings = '-command settings'
- let s:command_settings_update = '-command settings_update -s ""'
- let s:command_shutdown = "-command shutdown"
- let s:command_jobs = '-command jobs'
- let s:connect= '^connect: .*$'
-
- let s:vim_settings = {}
- let s:vim_settings_defaults = {}
- let s:vim_settings_types = {}
- let s:vim_settings_validators = {}
-" }}}
-
-function! eclim#Execute(command, ...) " {{{
- " Optional args:
- " options {
- " One of the following to determine the eclimd instance to use, honored in
- " the order shown here:
- " instance: dictionary representing an eclimd instance.
- " project: project name
- " workspace: workspace path
- " dir: directory path to use as the current dir
- " exec: 1 to execute the command using execute instead of system.
- " raw: 1 to get the result without evaluating as json
- " }
-
- if exists('g:EclimDisabled')
- " if we are not in an autocmd or the autocmd is for an acwrite buffer,
- " alert the user that eclimd is disabled.
- if expand('') == '' || &buftype == 'acwrite'
- call eclim#util#EchoWarning(
- \ "eclim is currently disabled. use :EclimEnable to enable it.")
- endif
- return
- endif
-
- if !eclim#EclimAvailable()
- return
- endif
-
- let command = '-editor vim ' . a:command
-
- " encode special characters
- " http://www.w3schools.com/TAGS/ref_urlencode.asp
- let command = substitute(command, '\*', '%2A', 'g')
- let command = substitute(command, '\$', '%24', 'g')
- let command = substitute(command, '<', '%3C', 'g')
- let command = substitute(command, '>', '%3E', 'g')
-
- " determine the eclimd instance to use
- let options = a:0 ? a:1 : {}
- let instance = get(options, 'instance', {})
- if len(instance) == 0
- let project = get(options, 'project', '')
- if project != ''
- let workspace = eclim#project#util#GetProjectWorkspace(project)
- if type(workspace) == g:LIST_TYPE
- let workspaces = workspace
- unlet workspace
- let response = eclim#util#PromptList(
- \ 'Muliple workspaces found, please choose the target workspace',
- \ workspaces, g:EclimHighlightInfo)
-
- " user cancelled, error, etc.
- if response < 0
- return
- endif
-
- let workspace = workspaces[response]
- endif
- else
- let workspace = ''
- endif
-
- if workspace == ''
- let workspace = get(options, 'workspace', '')
- endif
-
- let dir = workspace != '' ? workspace : get(options, 'dir', '')
- let chosen = eclim#client#nailgun#ChooseEclimdInstance(dir)
- if type(chosen) != g:DICT_TYPE
- return
- endif
- let instance = chosen
- endif
-
- let exec = get(options, 'exec', 0)
- let [retcode, result] = eclim#client#nailgun#Execute(instance, command, exec)
- let result = substitute(result, '\n$', '', '')
-
- " not sure this is the best place to handle this, but when using the python
- " client, the result has a trailing ctrl-m on windows. also account for
- " running under cygwin vim.
- if has('win32') || has('win64') || has('win32unix')
- let result = substitute(result, "\$", '', '')
- endif
-
- " an echo during startup causes an annoying issue with vim.
- "call eclim#util#Echo(' ')
-
- " check for errors
- let error = ''
- if result =~ '^[^\n]*Exception:\?[^\n]*\n\s\+\ ' ||
- \ result =~ '^[^\n]*ResourceException(.\{-})\[[0-9]\+\]:[^\n]*\n\s\+\ '
- if g:EclimLogLevel != 'trace'
- let error = substitute(result, '\(.\{-}\)\n.*', '\1', '')
- else
- let error = result
- endif
- elseif retcode
- let error = result
- endif
-
- if retcode || error != ''
- if s:echo_connection_errors
- if error =~ s:connect
- " if we are not in an autocmd or the autocmd is for an acwrite buffer,
- " alert the user that eclimd is not running.
- if expand('') == '' || &buftype == 'acwrite'
- call eclim#util#EchoWarning(
- \ "unable to connect to eclimd (port: " . instance.port . ") - " . error)
- endif
- else
- let error = error . "\n" .
- \ 'while executing command (port: ' . instance.port . '): ' . command
- " if we are not in an autocmd or in a autocmd for an acwrite buffer,
- " echo the error, otherwise just log it.
- if expand('') == '' || &buftype == 'acwrite'
- call eclim#util#EchoError(error)
- else
- call eclim#util#EchoDebug(error)
- endif
- endif
- endif
- return
- endif
-
- let raw = get(options, 'raw', 0)
- return result != '' && !raw ? eval(result) : result
-endfunction " }}}
-
-function! eclim#Disable() " {{{
- if !exists('g:EclimDisabled')
- let g:EclimDisabled = 1
- endif
-endfunction " }}}
-
-function! eclim#Enable() " {{{
- if exists('g:EclimDisabled')
- unlet g:EclimDisabled
- endif
-endfunction " }}}
-
-function! eclim#EclimAvailable(...) " {{{
- " Optional args:
- " echo: Whether or not to echo an error if eclim is not available
- " (default: 1)
- let instances = eclim#UserHome() . '/.eclim/.eclimd_instances'
- let available = filereadable(instances)
- let echo = a:0 ? a:1 : 1
- if echo && !available && expand('') == ''
- call eclim#util#EchoError(printf(
- \ 'No eclimd instances found running (eclimd created file not found %s)',
- \ eclim#UserHome() . '/.eclim/.eclimd_instances'))
- endif
- return available
-endfunction " }}}
-
-function! eclim#PingEclim(echo, ...) " {{{
- " If echo is non 0, then the result is echoed to the user.
- " Optional args:
- " workspace
-
- let workspace = a:0 ? a:1 : ''
- if a:echo
- let result = eclim#Execute(s:command_ping, {'workspace': workspace})
- if type(result) == g:DICT_TYPE
- call eclim#util#Echo(
- \ 'eclim ' . result.eclim . "\n" .
- \ 'eclipse ' . result.eclipse)
- endif
- else
- let savedErr = s:echo_connection_errors
- let savedLog = g:EclimLogLevel
- let s:echo_connection_errors = 0
- let g:EclimLogLevel = 'off'
-
- let result = eclim#Execute(s:command_ping, {'workspace': workspace})
-
- let s:echo_connection_errors = savedErr
- let g:EclimLogLevel = savedLog
-
- return type(result) == g:DICT_TYPE
- endif
-endfunction " }}}
-
-function! eclim#ParseSettingErrors(errors) " {{{
- let errors = []
- for error in a:errors
- let message = error.message
- let setting = substitute(message, '^\(.\{-}\): .*', '\1', '')
- let message = substitute(message, '^.\{-}: \(.*\)', '\1', '')
- if error.line == 1 && setting != error.message
- let line = search('^\s*' . setting . '\s*=', 'cnw')
- let error.line = line > 0 ? line : 1
- endif
- call add(errors, {
- \ 'bufnr': bufnr('%'),
- \ 'lnum': error.line,
- \ 'text': message,
- \ 'type': error.warning == 1 ? 'w' : 'e',
- \ })
- endfor
- return errors
-endfunction " }}}
-
-function! eclim#SaveSettings(command, project) " {{{
- " don't check modified since undo seems to not set the modified flag
- "if &modified
- let tempfile = substitute(tempname(), '\', '/', 'g')
-
- " get all lines, filtering out comments and blank lines
- let lines = filter(getline(1, line('$')), 'v:val !~ "^\\s*\\(#\\|$\\)"')
-
- " convert lines into a settings dict
- let index = 0
- let settings = {}
- let pattern = '^\s*\([[:alnum:]_.-]\+\)\s*=\s*\(.*\)'
- while index < len(lines)
- if lines[index] =~ pattern
- let name = substitute(lines[index], pattern, '\1', '')
- let value = substitute(lines[index], pattern, '\2', '')
- while value =~ '\\$'
- let index += 1
- let value = substitute(value, '\\$', '', '')
- let value .= substitute(lines[index], '^\s*', '', '')
- endwhile
- let settings[name] = value
- endif
- let index += 1
- endwhile
- call writefile([string(settings)], tempfile)
-
- if has('win32unix')
- let tempfile = eclim#cygwin#WindowsPath(tempfile)
- endif
-
- let command = a:command
- let command = substitute(command, '', a:project, '')
- let command = substitute(command, '', tempfile, '')
-
- if exists('b:eclimd_instance')
- let result = eclim#Execute(command, {'instance': b:eclimd_instance})
- else
- let result = eclim#Execute(command)
- endif
-
- if type(result) == g:LIST_TYPE
- call eclim#util#EchoError
- \ ("Operation contained errors. See location list for details.")
- let errors = eclim#ParseSettingErrors(result)
- call eclim#util#SetLocationList(errors)
- else
- call eclim#util#ClearLocationList()
- call eclim#util#Echo(result)
- endif
-
- setlocal nomodified
- "endif
-endfunction " }}}
-
-function! eclim#Settings(workspace) " {{{
- let instance = eclim#client#nailgun#ChooseEclimdInstance(a:workspace)
- if type(instance) != g:DICT_TYPE
- return
- endif
-
- let settings = eclim#Execute(s:command_settings, {'instance': instance})
- if type(settings) != g:LIST_TYPE
- return
- endif
-
- let content = ['# Global settings for workspace: ' . instance.workspace, '']
- let path = ''
- for setting in settings
- if setting.path != path
- if path != ''
- let content += ['# }', '']
- endif
- let path = setting.path
- call add(content, '# ' . path . ' {')
- endif
- let description = split(setting.description, '\n')
- let content += map(description, "'\t# ' . v:val")
- call add(content, "\t" . setting.name . '=' . setting.value)
- endfor
- if path != ''
- call add(content, '# }')
- endif
-
- call eclim#util#TempWindow("Workspace_Settings", content)
- setlocal buftype=acwrite
- setlocal filetype=jproperties
- setlocal noreadonly
- setlocal modifiable
- setlocal foldmethod=marker
- setlocal foldmarker={,}
- let b:eclimd_instance = instance
-
- augroup eclim_settings
- autocmd! BufWriteCmd
- exec 'autocmd BufWriteCmd ' .
- \ 'call eclim#SaveSettings(s:command_settings_update, "")'
- augroup END
-endfunction " }}}
-
-function! eclim#ShutdownEclim() " {{{
- call eclim#Execute(s:command_shutdown)
-endfunction " }}}
-
-function! eclim#LoadVimSettings() " {{{
- let settings_file = eclim#UserHome() . '/.eclim/.eclim_settings'
- if filereadable(settings_file)
- let lines = readfile(settings_file)
- if len(lines) == 1 && lines[0] =~ '^{.*}$'
- let settings = eval(lines[0])
- for [key, value] in items(settings)
- let name = 'g:Eclim' . key
- if !exists(name)
- exec 'let ' . name . ' = ' . string(value)
- endif
- unlet value
- endfor
- endif
- endif
-
- " Handle legacy sign/log level values
- let legacy = {0: 'off', 1: 'error', 2: 'error', 3: 'warning', 4: 'info', 5: 'debug', 6: 'trace'}
- if exists('g:EclimLogLevel') && type(g:EclimLogLevel) == g:NUMBER_TYPE
- let g:EclimLogLevel = get(legacy, g:EclimLogLevel, 'info')
- endif
- if exists('g:EclimSignLevel') && type(g:EclimSignLevel) == g:NUMBER_TYPE
- let g:EclimSignLevel = get(legacy, g:EclimSignLevel, 'info')
- endif
-endfunction " }}}
-
-function! eclim#AddVimSetting(namespace, name, default, desc, ...) " {{{
- " Optional args:
- " regex: regular expression used to validate the setting's value.
- if !has_key(s:vim_settings, a:namespace)
- let s:vim_settings[a:namespace] = {}
- endif
- let name = substitute(a:name, 'g:Eclim', '', '')
- let s:vim_settings[a:namespace][name] = {'desc': a:desc}
- let s:vim_settings_defaults[name] = a:default
- let s:vim_settings_types[name] = type(a:default)
- let regex = a:0 ? a:1 : ''
- if regex != ''
- let s:vim_settings_validators[name] = regex
- if exists(a:name)
- exec 'let value = ' . a:name
- if value !~ '^' . regex . '$'
- echo a:name . ' must match ' . regex
- exec 'unlet ' . a:name
- endif
- endif
- endif
-
- if !exists(a:name)
- exec 'let ' . a:name . ' = ' . string(a:default)
- endif
-endfunction " }}}
-
-function! eclim#VimSettings() " {{{
- let content = [
- \ "# Eclim's global vim settings",
- \ "# The settings here allow you to configure the vim side behavior of eclim.",
- \ "# You can use on a setting name to open the eclim docs for that setting.",
- \ "#",
- \ "# Note: If you have g:EclimXXX variables set in your .vimrc, those will take",
- \ "# precedence over any changes you make here.",
- \ ]
- for namespace in sort(keys(s:vim_settings))
- let content += ['', '# ' . namespace . ' {{{']
- for name in sort(keys(s:vim_settings[namespace]))
- let setting = s:vim_settings[namespace][name]
- let desc = split(setting.desc, '\n')
- let content += map(desc, "'\t# ' . v:val")
- exec 'let value = string(g:Eclim' . name . ')'
- call add(content, "\t" . name . '=' . value)
- endfor
- let content += ['# }}}']
- endfor
-
- call eclim#util#TempWindow("Vim_Settings", content)
- setlocal buftype=acwrite
- setlocal filetype=jproperties
- setlocal noreadonly
- setlocal modifiable
- setlocal foldmethod=marker
- setlocal foldmarker={{{,}}}
- nnoremap :call VimSettingHelp()
-
- augroup eclim_settings
- autocmd! BufWriteCmd
- autocmd BufWriteCmd call eclim#SaveVimSettings()
- augroup END
-endfunction " }}}
-
-function! s:VimSettingHelp() " {{{
- let pos = getpos('.')
- try
- call cursor(0, 1)
- normal! w
- let syntax = synIDattr(synID(line('.'), col('.'), 1), 'name')
- finally
- call setpos('.', pos)
- endtry
-
- if syntax == 'jpropertiesIdentifier'
- let line = getline('.')
- let name = substitute(line, '^\s*\(\w\+\)=.*', '\1', '')
- if name != line
- exec 'EclimHelp g:Eclim' . name
- endif
- endif
-endfunction " }}}
-
-function! eclim#SaveVimSettings() " {{{
- " get all lines, filtering out comments and blank lines
- let lines = filter(getline(1, line('$')), 'v:val !~ "^\\s*\\(#\\|$\\)"')
-
- " convert lines into a settings dict
- let index = 0
- let settings = {}
- let pattern = '^\s*\([[:alnum:]_.-]\+\)\s*=\s*\(.*\)'
- let errors = []
- while index < len(lines)
- try
- if lines[index] =~ pattern
- let name = substitute(lines[index], pattern, '\1', '')
- if !has_key(s:vim_settings_types, name)
- continue
- endif
-
- let value = substitute(lines[index], pattern, '\2', '')
- while value =~ '\\$'
- let index += 1
- let value = substitute(value, '\\$', '', '')
- let value .= substitute(lines[index], '^\s*', '', '')
- endwhile
- let value = substitute(value, "\\(^['\"]\\|['\"]$\\)", '', 'g')
-
- if has_key(s:vim_settings_validators, name)
- let regex = s:vim_settings_validators[name]
- if value !~ '^' . regex . '$'
- let [line, col] = searchpos('^\s*' . name . '=', 'nw')
- call add(errors, {
- \ 'filename': expand('%'),
- \ 'message': name . ': must match ' . regex,
- \ 'line': line,
- \ 'column': col,
- \ 'type': 'error',
- \ })
- continue
- endif
- endif
-
- if s:vim_settings_types[name] != g:STRING_TYPE
- try
- let typed_value = eval(value)
- unlet value
- let value = typed_value
- catch /E121\|E115/
- let [line, col] = searchpos('^\s*' . name . '=', 'nw')
- call add(errors, {
- \ 'filename': expand('%'),
- \ 'message': name . ': ' . v:exception,
- \ 'line': line,
- \ 'column': col,
- \ 'type': 'error',
- \ })
- continue
- endtry
- endif
-
- let default = s:vim_settings_defaults[name]
- if value != default
- let settings[name] = value
- endif
- endif
- finally
- let index += 1
- unlet! value typed_value default
- endtry
- endwhile
-
- if len(errors)
- call eclim#util#SetLocationList(eclim#util#ParseLocationEntries(errors))
- call eclim#util#EchoError(
- \ len(errors) . ' error' . (len(errors) > 1 ? 's' : '') . ' found.')
- return
- endif
-
- call eclim#util#ClearLocationList()
-
- if !isdirectory(eclim#UserHome() . '/.eclim')
- call mkdir(eclim#UserHome() . '/.eclim')
- endif
- let settings_file = eclim#UserHome() . '/.eclim/.eclim_settings'
- if writefile([string(settings)], settings_file) == 0
- call eclim#util#Echo('Settings saved. You may need to restart vim for all changes to take affect.')
- else
- call eclim#util#Echo('Unable to write settings.')
- endif
-
- setlocal nomodified
-endfunction " }}}
-
-function! eclim#UserHome() " {{{
- let home = expand('$HOME')
- if has('win32unix')
- let home = eclim#cygwin#WindowsHome()
- elseif has('win32') || has('win64')
- let home = expand('$USERPROFILE')
- endif
- return substitute(home, '\', '/', 'g')
-endfunction " }}}
-
-function! eclim#WaitOnRunningJobs(timeout) " {{{
- " Args:
- " timeout: max time to wait in milliseconds
- let running = 1
- let waited = 0
- while running && waited < a:timeout
- let jobs = eclim#Execute(s:command_jobs)
- if type(jobs) == g:LIST_TYPE
- let running = 0
- for job in jobs
- if job.status == 'running'
- call eclim#util#EchoDebug('Wait on job: ' . job.job)
- let running = 1
- let waited += 300
- sleep 300m
- break
- endif
- endfor
- endif
- endwhile
- if running
- call eclim#util#EchoDebug('Timeout exceeded waiting on jobs')
- endif
-endfunction " }}}
-
-" vim:ft=vim:fdm=marker
diff --git a/vim/bundle/eclim/autoload/eclim/client/nailgun.vim b/vim/bundle/eclim/autoload/eclim/client/nailgun.vim
deleted file mode 100644
index a97da4d..0000000
--- a/vim/bundle/eclim/autoload/eclim/client/nailgun.vim
+++ /dev/null
@@ -1,177 +0,0 @@
-" Author: Eric Van Dewoestine
-"
-" License: {{{
-"
-" Copyright (C) 2005 - 2014 Eric Van Dewoestine
-"
-" This program is free software: you can redistribute it and/or modify
-" it under the terms of the GNU General Public License as published by
-" the Free Software Foundation, either version 3 of the License, or
-" (at your option) any later version.
-"
-" This program is distributed in the hope that it will be useful,
-" but WITHOUT ANY WARRANTY; without even the implied warranty of
-" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-" GNU General Public License for more details.
-"
-" You should have received a copy of the GNU General Public License
-" along with this program. If not, see .
-"
-" }}}
-
-" Global Variables {{{
- if !exists("g:EclimNailgunKeepAlive")
- " keepAlive flag - can be re-defined in the user ~/.vimrc .
- " Read once, on client initialization. Subsequent changes of
- " this flag in run-time has no effect.
- let g:EclimNailgunKeepAlive = 0
- endif
-" }}}
-
-function! eclim#client#nailgun#ChooseEclimdInstance(...) " {{{
- " Function which prompts the user to pick the target workspace and returns
- " their choice or if only one workspace is active simply return it without
- " prompting the user. If the optional 'dir' argument is supplied and that dir
- " is a subdirectory of one of the workspaces, then that workspace will be
- " returned.
- " Optional args:
- " dir
-
- if !eclim#EclimAvailable()
- return
- endif
-
- let instances = eclim#client#nailgun#GetEclimdInstances()
- if len(instances) == 1
- return instances[keys(instances)[0]]
- endif
-
- if len(instances) > 1
- let path = a:0 && a:1 != '' ? a:1 : expand('%:p')
- if path == ''
- let path = getcwd() . '/'
- endif
- let path = substitute(path, '\', '/', 'g')
-
- " when we are in a temp window, use the initiating filename
- if &buftype != '' && exists('b:filename')
- let path = b:filename
- endif
-
- " project inside of a workspace dir
- for workspace in keys(instances)
- if path =~ '^' . workspace
- return instances[workspace]
- endif
- endfor
-
- " project outside of a workspace dir
- let project = eclim#project#util#GetProject(path)
- if len(project) > 0
- return get(instances, project.workspace, 0)
- endif
-
- let workspaces = keys(instances)
- let response = eclim#util#PromptList(
- \ 'Muliple workspaces found, please choose the target workspace',
- \ workspaces, g:EclimHighlightInfo)
-
- " user cancelled, error, etc.
- if response < 0
- return
- endif
-
- return instances[workspaces[response]]
- endif
-
- call eclim#util#Echo('No eclimd instances found running.')
-endfunction " }}}
-
-function! eclim#client#nailgun#GetEclimdInstances() " {{{
- " Returns a dict with eclimd instances.
- let instances = {}
- if eclim#EclimAvailable()
- let dotinstances = eclim#UserHome() . '/.eclim/.eclimd_instances'
- let lines = readfile(dotinstances)
- for line in lines
- if line !~ '^{'
- continue
- endif
- let values = eval(line)
- let instances[values.workspace] = values
- endfor
- endif
- return instances
-endfunction " }}}
-
-function! eclim#client#nailgun#Execute(instance, command, ...) " {{{
- let exec = a:0 ? a:1 : 0
-
- if !exec
- if g:EclimNailgunClient == 'python' && has('python')
- return eclim#client#python#nailgun#Execute(a:instance.port, a:command)
- endif
- endif
-
- let [retcode, result] = eclim#client#nailgun#GetEclimCommand(a:instance.home)
- if retcode != 0
- return [retcode, result]
- endif
-
- let command = a:command
- if exec
- let command = escape(command, '%#')
- endif
-
- " on windows/cygwin where cmd.exe is used, we need to escape any '^'
- " characters in the command args.
- if has('win32') || has('win64') || has('win32unix')
- let command = substitute(command, '\^', '^^', 'g')
- endif
-
- let eclim = result . ' --nailgun-server localhost --nailgun-port ' . a:instance.port . ' ' . command
- if exec
- let eclim = '!' . eclim
- endif
-
- let result = eclim#util#System(eclim, exec, exec)
- return [v:shell_error, result]
-endfunction " }}}
-
-function! eclim#client#nailgun#GetEclimCommand(home) " {{{
- " Gets the command to exexute eclim.
- let command = a:home . 'bin/eclim'
-
- if has('win32') || has('win64') || has('win32unix')
- let command = command . '.bat'
- endif
-
- if !filereadable(command)
- return [1, 'Could not locate file: ' . command]
- endif
-
- if has('win32unix')
- " in cygwin, we must use 'cmd /c' to prevent issues with eclim script +
- " some arg containing spaces causing a failure to invoke the script.
- return 'cmd /c "' . eclim#cygwin#WindowsPath(command) . '"'
- endif
- return [0, '"' . command . '"']
-endfunction " }}}
-
-function! eclim#client#nailgun#CommandCompleteWorkspaces(argLead, cmdLine, cursorPos) " {{{
- " Custom command completion for available workspaces.
-
- let cmdLine = strpart(a:cmdLine, 0, a:cursorPos)
- let args = eclim#util#ParseCmdLine(cmdLine)
- let argLead = cmdLine =~ '\s$' ? '' : args[len(args) - 1]
-
- let instances = eclim#client#nailgun#GetEclimdInstances()
- let workspaces = sort(keys(instances))
- if cmdLine !~ '[^\\]\s$'
- call filter(workspaces, 'v:val =~ "^' . argLead . '"')
- endif
-
- return workspaces
-endfunction " }}}
-
-" vim:ft=vim:fdm=marker
diff --git a/vim/bundle/eclim/autoload/eclim/client/python/nailgun.py b/vim/bundle/eclim/autoload/eclim/client/python/nailgun.py
deleted file mode 100644
index 4abaa76..0000000
--- a/vim/bundle/eclim/autoload/eclim/client/python/nailgun.py
+++ /dev/null
@@ -1,214 +0,0 @@
-"""
-Copyright (C) 2005 - 2011 Eric Van Dewoestine
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see .
-
-@author: Anton Sharonov
-@author: Eric Van Dewoestine
-"""
-import socket
-
-try:
- from cStringIO import StringIO
-except:
- from StringIO import StringIO
-
-class Nailgun(object):
- """
- Client used to communicate with a nailgun server.
- """
-
- def __init__(self, **kwargs):
- self.socket = None
- self.port = kwargs.get('port')
- self.keepAlive = int(kwargs.get('keepAlive', 0))
- self.reconnectCounter = 0
-
- def send(self, cmdline):
- """
- Sends a complete command to the nailgun server. Handles connecting to the
- server if not currently connected.
- @param cmdline command, which is sent to server, for instance
- "-command ping".
- @return tuple consisting of:
- - retcode from server (0 for success, non-0 for failure)
- - string response from server
- """
- if not self.isConnected():
- # with keepAlive do only first reconnect
- if not self.keepAlive or self.reconnectCounter == 0:
- (retcode, result) = self.reconnect()
- if retcode:
- return (retcode, result)
-
- if not self.isConnected(): # Only for keepAlive
- return (-1, "connect: ERROR - socket is not connected (nailgun.py)")
-
- try: # outer try for pre python 2.5 support.
- try:
- for arg in self.parseArgs(cmdline):
- self.sendChunk("A", arg)
-
- if self.keepAlive:
- self.sendChunk("K")
-
- self.sendChunk("C", "org.eclim.command.Main")
-
- (retcode, result) = self.processResponse()
- if self.keepAlive and retcode:
- # force reconnect on error (may not be necessary)
- self.reconnect()
-
- return (retcode, result)
- except socket.error, ex:
- args = ex.args
- if len(args) > 1:
- retcode, msg = args[0], args[1]
- elif len(args):
- retcode, msg = 1, args[0]
- else:
- retcode, msg = 1, 'No message'
- return (retcode, 'send: %s' % msg)
- finally:
- if not self.keepAlive:
- try:
- self.close()
- except:
- # don't let an error on close mask any previous error.
- pass
-
- def connect(self, port=None):
- """
- Establishes the connection to specified port or if not supplied,
- uses the default.
- """
- port = port or self.port
- try:
- sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- sock.connect(('localhost', port))
- except socket.error, ex:
- args = ex.args
- if len(args) > 1:
- retcode, msg = args[0], args[1]
- elif len(args):
- retcode, msg = 1, args[0]
- else:
- retcode, msg = 1, 'No message'
- return (retcode, 'connect: %s' % msg)
-
- self.socket = sock
- return (0, '')
-
- def reconnect(self):
- if self.socket != None:
- self.close()
- self.reconnectCounter += 1
- return self.connect()
-
- def close(self):
- self.socket.close()
- self.socket = None
-
- def isConnected(self):
- return self.socket != None
-
- def parseArgs(self, cmdline):
- # FIXME: doesn't handle escaping of spaces/quotes yet (may never need to)
- args = []
- arg = ''
- quote = ''
- for char in cmdline:
- if char == ' ' and not quote:
- if arg:
- args.append(arg)
- arg = ''
- elif char == '"' or char == "'":
- if quote and char == quote:
- quote = ''
- elif not quote:
- quote = char
- else:
- arg += char
- else:
- arg += char
-
- if arg:
- args.append(arg)
-
- return args
-
- def sendChunk(self, chunkType, text=''):
- """
- Sends a nailgun 'chunk' to the server.
- """
- #print("sendChunk " + chunkType + " " + text)
- length = len(text)
- str = "%c%c%c%c%c" % (
- (length / (65536*256)) % 256,
- (length / 65536) % 256,
- (length / 256) % 256,
- length % 256,
- chunkType)
- nbytes = self.socket.sendall(str)
- nbytes = self.socket.sendall(text)
-
- def processResponse(self):
- result = StringIO()
- exit = 0
- exitFlag = 1 # expecting 1 times exit chunk
- while exitFlag > 0:
- answer = self.recvBlocked(5)
- if len(answer) < 5:
- print("error: socket closed unexpectedly\n")
- return None
- lenPayload = ord(answer[0]) * 65536 * 256 \
- + ord(answer[1]) * 65536 \
- + ord(answer[2]) * 256 \
- + ord(answer[3])
- #print("lenPayload detected : %d" % lenPayload)
- chunkType = answer[4]
- if chunkType == "1":
- # STDOUT
- result.write(self.recvToFD(1, answer, lenPayload))
- elif chunkType == "2":
- # STDERR
- result.write(self.recvToFD(2, answer, lenPayload))
- elif chunkType == "X":
- exitFlag = exitFlag - 1
- exit = int(self.recvToFD(2, answer, lenPayload))
- else:
- print("error: unknown chunk type = %d\n" % chunkType)
- exitFlag = 0
-
- return [exit, result.getvalue()]
-
- def recvBlocked(self, lenPayload):
- """
- Receives until all data is read - necessary because usual recv sometimes
- returns with number of bytes read less then asked.
- """
- received = ""
- while (len(received) < lenPayload):
- received = received + self.socket.recv(lenPayload - len(received))
- return received
-
- def recvToFD(self, destFD, buf, lenPayload):
- """
- This function just mimics the function with the same name from the C
- client. We don't really care which file descriptor the server tells us to
- write to - STDOUT and STDERR are the same on VIM side (see eclim.bat,
- "2>&1" at the end of command).
- """
- received = self.recvBlocked(lenPayload)
- return received
diff --git a/vim/bundle/eclim/autoload/eclim/client/python/nailgun.vim b/vim/bundle/eclim/autoload/eclim/client/python/nailgun.vim
deleted file mode 100644
index 81cfa31..0000000
--- a/vim/bundle/eclim/autoload/eclim/client/python/nailgun.vim
+++ /dev/null
@@ -1,115 +0,0 @@
-" Author: Anton Sharonov
-" Author: Eric Van Dewoestine
-"
-" Description: {{{
-"
-" License:
-"
-" Copyright (C) 2005 - 2010 Eric Van Dewoestine
-"
-" This program is free software: you can redistribute it and/or modify
-" it under the terms of the GNU General Public License as published by
-" the Free Software Foundation, either version 3 of the License, or
-" (at your option) any later version.
-"
-" This program is distributed in the hope that it will be useful,
-" but WITHOUT ANY WARRANTY; without even the implied warranty of
-" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-" GNU General Public License for more details.
-"
-" You should have received a copy of the GNU General Public License
-" along with this program. If not, see .
-"
-" }}}
-
-" Script Variables {{{
- let s:python_dir = expand(":h")
-" }}}
-
-" Execute(port, command) {{{
-" Sends to the eclimd server command, supplied as argument string.
-" Returns server's respond.
-function! eclim#client#python#nailgun#Execute(port, command)
- call s:InitClient(a:port)
- let result_viml = ""
- let retcode = 0
-
- let begin = localtime()
- try
-python << PYTHONEOF
-command = vim.eval('a:command')
-(retcode, result) = client.send(command)
-vim.command('let retcode = %i' % retcode)
-vim.command("let result = '%s'" % result.replace("'", "''"))
-PYTHONEOF
- finally
- call eclim#util#EchoTrace(
- \ 'nailgun.py (port: ' . a:port . '): ' . a:command, localtime() - begin)
- endtry
-
- return [retcode, result]
-endfunction " }}}
-
-" Reconnect(port) {{{
-" Does unconditional reconnect of the python_if
-" (useful to manual recover from errors in the python_if)
-function! eclim#client#python#nailgun#Reconnect(port)
- call s:InitClient(a:port)
-python << PYTHONEOF
-client.reconnect()
-PYTHONEOF
-endfunction " }}}
-
-" SetKeepAlive(port, value) {{{
-" Updates the in runtime value of the keepAlive flag.
-function! eclim#client#python#nailgun#SetKeepAlive(port, value)
- call s:InitClient(a:port)
-python << PYTHONEOF
-client.keepAlive = int(vim.eval('a:value'))
-PYTHONEOF
-endfunction " }}}
-
-" GetKeepAlive(port) {{{
-" Retrieves the value of the keepAlive flag.
-function! eclim#client#python#nailgun#GetKeepAlive(port)
- call s:InitClient(a:port)
- let result = 0
-python << PYTHONEOF
-vim.command("let result = %s" % client.keepAlive)
-PYTHONEOF
- return result
-endfunction " }}}
-
-" GetReconnectCounter(port) {{{
-" Retrieves the value of the reconnect counter.
-function! eclim#client#python#nailgun#GetReconnectCounter(port)
- call s:InitClient(a:port)
- let result = 0
-python << PYTHONEOF
-vim.command("let result = %d" % client.reconnectCounter)
-PYTHONEOF
- return result
-endfunction " }}}
-
-" s:InitClient(port) {{{
-" Initializes the python interface to the nailgun server.
-function! s:InitClient(port)
-python << PYTHONEOF
-if not vars().has_key('clients'):
- import sys, vim
- sys.path.append(vim.eval('s:python_dir'))
- import nailgun
-
- clients = {}
-
-port = int(vim.eval('a:port'))
-if not clients.has_key(port):
- clients[port] = nailgun.Nailgun(
- port=port,
- keepAlive=vim.eval('g:EclimNailgunKeepAlive'),
- )
-client = clients[port]
-PYTHONEOF
-endfunction " }}}
-
-" vim:ft=vim:fdm=marker
diff --git a/vim/bundle/eclim/autoload/eclim/common/buffers.vim b/vim/bundle/eclim/autoload/eclim/common/buffers.vim
deleted file mode 100644
index 672a2e7..0000000
--- a/vim/bundle/eclim/autoload/eclim/common/buffers.vim
+++ /dev/null
@@ -1,379 +0,0 @@
-" Author: Eric Van Dewoestine
-"
-" Description: {{{
-"
-" License:
-"
-" Copyright (C) 2005 - 2014 Eric Van Dewoestine
-"
-" This program is free software: you can redistribute it and/or modify
-" it under the terms of the GNU General Public License as published by
-" the Free Software Foundation, either version 3 of the License, or
-" (at your option) any later version.
-"
-" This program is distributed in the hope that it will be useful,
-" but WITHOUT ANY WARRANTY; without even the implied warranty of
-" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-" GNU General Public License for more details.
-"
-" You should have received a copy of the GNU General Public License
-" along with this program. If not, see .
-"
-" }}}
-
-" ScriptVariables {{{
- let s:eclim_tab_id = 0
-" }}}
-
-function! eclim#common#buffers#Buffers(bang) " {{{
- " Like, :buffers, but opens a temporary buffer.
-
- let options = {'maxfilelength': 0}
- let buffers = eclim#common#buffers#GetBuffers(options)
-
- if g:EclimBuffersSort != ''
- call sort(buffers, 'eclim#common#buffers#BufferCompare')
- endif
-
- let lines = []
- let buflist = []
- let filelength = options['maxfilelength']
- let tabid = exists('*gettabvar') ? s:GetTabId() : 0
- let tabbuffers = tabpagebuflist()
- for buffer in buffers
- let eclim_tab_id = getbufvar(buffer.bufnr, 'eclim_tab_id')
- if a:bang != '' || eclim_tab_id == '' || eclim_tab_id == tabid
- " for buffers w/ out a tab id, don't show them in the list if they
- " are active, but aren't open on the current tab.
- if a:bang == '' && buffer.status =~ 'a' && index(tabbuffers, buffer.bufnr) == -1
- continue
- endif
-
- call add(lines, s:BufferEntryToLine(buffer, filelength))
- call add(buflist, buffer)
- endif
- endfor
-
- call eclim#util#TempWindow('[buffers]', lines)
-
- setlocal modifiable noreadonly
- call append(line('$'), ['', '" use ? to view help'])
- setlocal nomodifiable readonly
-
- let b:eclim_buffers = buflist
-
- " syntax
- set ft=eclim_buffers
- hi link BufferActive Special
- hi link BufferHidden Comment
- syntax match BufferActive /+\?active\s\+\(\[RO\]\)\?/
- syntax match BufferHidden /+\?hidden\s\+\(\[RO\]\)\?/
- syntax match Comment /^".*/
-
- " mappings
- nnoremap :call BufferOpen(g:EclimBuffersDefaultAction)
- nnoremap E :call BufferOpen('edit')
- nnoremap S :call BufferOpen('split')
- nnoremap V :call BufferOpen('vsplit')
- nnoremap T :call BufferOpen('tablast \| tabnew')
- nnoremap D :call BufferDelete()
- nnoremap R :Buffers
-
- " assign to buffer var to get around weird vim issue passing list containing
- " a string w/ a '<' in it on execution of mapping.
- let b:buffers_help = [
- \ ' - open buffer with default action',
- \ 'E - open with :edit',
- \ 'S - open in a new split window',
- \ 'V - open in a new vertically split window',
- \ 'T - open in a new tab',
- \ 'D - delete the buffer',
- \ 'R - refresh the buffer list',
- \ ]
- nnoremap ?
- \ :call eclim#help#BufferHelp(b:buffers_help, 'vertical', 40)
-
- "augroup eclim_buffers
- " autocmd!
- " autocmd BufAdd,BufWinEnter,BufDelete,BufWinLeave *
- " \ call eclim#common#buffers#BuffersUpdate()
- " autocmd BufUnload autocmd! eclim_buffers
- "augroup END
-endfunction " }}}
-
-function! eclim#common#buffers#BuffersToggle(bang) " {{{
- let name = eclim#util#EscapeBufferName('[buffers]')
- if bufwinnr(name) == -1
- call eclim#common#buffers#Buffers(a:bang)
- else
- exec "bdelete " . bufnr(name)
- endif
-endfunction " }}}
-
-function! eclim#common#buffers#BufferCompare(buffer1, buffer2) " {{{
- exec 'let attr1 = a:buffer1.' . g:EclimBuffersSort
- exec 'let attr2 = a:buffer2.' . g:EclimBuffersSort
- let compare = attr1 == attr2 ? 0 : attr1 > attr2 ? 1 : -1
- if g:EclimBuffersSortDirection == 'desc'
- let compare = 0 - compare
- endif
- return compare
-endfunction " }}}
-
-function! eclim#common#buffers#Only() " {{{
- let curwin = winnr()
- let winnum = 1
- while winnum <= winnr('$')
- let fixed = g:EclimOnlyExcludeFixed && (
- \ getwinvar(winnum, '&winfixheight') == 1 ||
- \ getwinvar(winnum, '&winfixwidth') == 1)
- let excluded = bufname(winbufnr(winnum)) =~ g:EclimOnlyExclude
- if winnum != curwin && !fixed && !excluded
- if winnum < curwin
- let curwin -= 1
- endif
- exec winnum . 'winc w'
- close
- exec curwin . 'winc w'
- continue
- endif
- let winnum += 1
- endwhile
-endfunction " }}}
-
-function! eclim#common#buffers#GetBuffers(...) " {{{
- let options = a:0 ? a:1 : {}
-
- redir => list
- silent buffers
- redir END
-
- let buffers = []
- let maxfilelength = 0
- for entry in split(list, '\n')
- let buffer = {}
- let buffer.status = substitute(entry, '\s*[0-9]\+\s\+\(.\{-}\)\s\+".*', '\1', '')
- let buffer.path = substitute(entry, '.\{-}"\(.\{-}\)".*', '\1', '')
- let buffer.path = fnamemodify(buffer.path, ':p')
- let buffer.file = fnamemodify(buffer.path, ':p:t')
- let buffer.dir = fnamemodify(buffer.path, ':p:h')
- let buffer.bufnr = str2nr(substitute(entry, '\s*\([0-9]\+\).*', '\1', ''))
- let buffer.lnum = str2nr(substitute(entry, '.*"\s\+\w\+\s\+\(\d\+\)', '\1', ''))
- call add(buffers, buffer)
-
- if len(buffer.file) > maxfilelength
- let maxfilelength = len(buffer.file)
- endif
- endfor
-
- if has_key(options, 'maxfilelength')
- let options['maxfilelength'] = maxfilelength
- endif
-
- return buffers
-endfunction " }}}
-
-function! eclim#common#buffers#TabInit() " {{{
- let tabnr = 1
- while tabnr <= tabpagenr('$')
- let tab_id = gettabvar(tabnr, 'eclim_tab_id')
- if tab_id == ''
- let s:eclim_tab_id += 1
- call settabvar(tabnr, 'eclim_tab_id', s:eclim_tab_id)
- for bufnr in tabpagebuflist(tabnr)
- let btab_id = getbufvar(bufnr, 'eclim_tab_id')
- if btab_id == ''
- call setbufvar(bufnr, 'eclim_tab_id', s:eclim_tab_id)
- endif
- endfor
- endif
- let tabnr += 1
- endwhile
-endfunction " }}}
-
-function! eclim#common#buffers#TabEnter() " {{{
- if !s:GetTabId()
- call s:SetTabId()
- endif
-
- if g:EclimBuffersDeleteOnTabClose
- if exists('s:tab_count') && s:tab_count > tabpagenr('$')
- " delete any buffers associated with the closed tab
- let buffers = eclim#common#buffers#GetBuffers()
- for buffer in buffers
- let eclim_tab_id = getbufvar(buffer.bufnr, 'eclim_tab_id')
- " don't delete active buffers, just in case the tab has the wrong
- " eclim_tab_id
- if eclim_tab_id == s:tab_prev && buffer.status !~ 'a'
- try
- exec 'bdelete ' . buffer.bufnr
- catch /E89/
- " ignore since it happens when using bd! on the last buffer for
- " another tab.
- endtry
- endif
- endfor
- endif
- endif
-endfunction " }}}
-
-function! eclim#common#buffers#TabLeave() " {{{
- let s:tab_prev = s:GetTabId()
- let s:tab_count = tabpagenr('$')
-endfunction " }}}
-
-function! eclim#common#buffers#TabLastOpenIn() " {{{
- if !buflisted('%')
- silent! unlet b:eclim_tab_id
- endif
-
- if !s:GetTabId()
- call s:SetTabId()
- endif
-
- let tabnr = 1
- let other_tab = 0
- let bufnr = bufnr('%')
- while tabnr <= tabpagenr('$')
- if tabnr != tabpagenr() &&
- \ eclim#util#ListContains(tabpagebuflist(tabnr), bufnr)
- let other_tab = tabnr
- break
- endif
- let tabnr += 1
- endwhile
-
- if !exists('b:eclim_tab_id') || !other_tab
- let b:eclim_tab_id = s:GetTabId()
- endif
-endfunction " }}}
-
-function! eclim#common#buffers#OpenNextHiddenTabBuffer(current) " {{{
- let allbuffers = eclim#common#buffers#GetBuffers()
-
- " build list of buffers open in other tabs to exclude
- let tabbuffers = []
- let lasttab = tabpagenr('$')
- let index = 1
- while index <= lasttab
- if index != tabpagenr()
- for bnum in tabpagebuflist(index)
- call add(tabbuffers, bnum)
- endfor
- endif
- let index += 1
- endwhile
-
- " build list of buffers not open in any window, and last seen on the
- " current tab.
- let hiddenbuffers = []
- for buffer in allbuffers
- let bnum = buffer.bufnr
- if bnum != a:current && index(tabbuffers, bnum) == -1 && bufwinnr(bnum) == -1
- let eclim_tab_id = getbufvar(bnum, 'eclim_tab_id')
- if eclim_tab_id != '' && eclim_tab_id != t:eclim_tab_id
- continue
- endif
-
- if bnum < a:current
- call insert(hiddenbuffers, bnum)
- else
- call add(hiddenbuffers, bnum)
- endif
- endif
- endfor
-
- " we found a hidden buffer, so open it
- if len(hiddenbuffers) > 0
- exec 'buffer ' . hiddenbuffers[0]
- doautocmd BufEnter
- doautocmd BufWinEnter
- doautocmd BufReadPost
- return hiddenbuffers[0]
- endif
- return 0
-endfunction " }}}
-
-function! s:BufferDelete() " {{{
- let line = line('.')
- if line > len(b:eclim_buffers)
- return
- endif
-
- let index = line - 1
- setlocal modifiable
- setlocal noreadonly
- exec line . ',' . line . 'delete _'
- setlocal nomodifiable
- setlocal readonly
- let buffer = b:eclim_buffers[index]
- call remove(b:eclim_buffers, index)
-
- let winnr = winnr()
- " make sure the autocmds are executed in the following order
- noautocmd exec 'bd ' . buffer.bufnr
- doautocmd BufDelete
- doautocmd BufEnter
- exec winnr . 'winc w'
-endfunction " }}}
-
-function! s:BufferEntryToLine(buffer, filelength) " {{{
- let line = ''
- let line .= a:buffer.status =~ '+' ? '+' : ' '
- let line .= a:buffer.status =~ 'a' ? 'active' : 'hidden'
- let line .= a:buffer.status =~ '[-=]' ? ' [RO] ' : ' '
- let line .= a:buffer.file
-
- let pad = a:filelength - len(a:buffer.file) + 2
- while pad > 0
- let line .= ' '
- let pad -= 1
- endwhile
-
- let line .= a:buffer.dir
- return line
-endfunction " }}}
-
-function! s:BufferOpen(cmd) " {{{
- let line = line('.')
- if line > len(b:eclim_buffers)
- return
- endif
-
- let file = bufname(b:eclim_buffers[line - 1].bufnr)
- let winnr = b:winnr
- close
-
- " prevent opening the buffer in a split of a vertical tool window (project
- " tree, taglist, etc.)
- if exists('g:VerticalToolBuffers') && has_key(g:VerticalToolBuffers, winbufnr(winnr))
- let winnr = 1
- while has_key(g:VerticalToolBuffers, winbufnr(winnr))
- let winnr += 1
- if winnr > winnr('$')
- let winnr -= 1
- break
- endif
- endwhile
- endif
-
- exec winnr . 'winc w'
- call eclim#util#GoToBufferWindowOrOpen(file, a:cmd)
-endfunction " }}}
-
-function! s:GetTabId(...) " {{{
- let tabnr = a:0 ? a:1 : tabpagenr()
- " using gettabvar over t:eclim_tab_id because while autocmds are executing,
- " the tabpagenr() may return the correct tab number, but accessing
- " t:eclim_tab_id may return the value from the previously focused tab.
- return gettabvar(tabnr, 'eclim_tab_id')
-endfunction " }}}
-
-function! s:SetTabId(...) " {{{
- let tabnr = a:0 ? a:1 : tabpagenr()
- let s:eclim_tab_id += 1
- " using settabvar for reason explained in s:GetTabId()
- call settabvar(tabnr, 'eclim_tab_id', s:eclim_tab_id)
-endfunction " }}}
-
-" vim:ft=vim:fdm=marker
diff --git a/vim/bundle/eclim/autoload/eclim/common/history.vim b/vim/bundle/eclim/autoload/eclim/common/history.vim
deleted file mode 100644
index 404047d..0000000
--- a/vim/bundle/eclim/autoload/eclim/common/history.vim
+++ /dev/null
@@ -1,316 +0,0 @@
-" Author: Eric Van Dewoestine
-"
-" License: {{{
-"
-" Copyright (C) 2005 - 2014 Eric Van Dewoestine
-"
-" This program is free software: you can redistribute it and/or modify
-" it under the terms of the GNU General Public License as published by
-" the Free Software Foundation, either version 3 of the License, or
-" (at your option) any later version.
-"
-" This program is distributed in the hope that it will be useful,
-" but WITHOUT ANY WARRANTY; without even the implied warranty of
-" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-" GNU General Public License for more details.
-"
-" You should have received a copy of the GNU General Public License
-" along with this program. If not, see .
-"
-" }}}
-
-" Script Variables {{{
-let s:command_add = '-command history_add -p "" -f ""'
-let s:command_list = '-command history_list -p "" -f ""'
-let s:command_revision =
- \ '-command history_revision -p "" -f "" -r '
-let s:command_clear = '-command history_clear -p "" -f ""'
-" }}}
-
-function! eclim#common#history#AddHistory() " {{{
- " Adds the current state of the file to the eclipse local history (should be
- " invoked prior to saving to disk).
- if !filereadable(expand('%')) || !eclim#project#util#IsCurrentFileInProject(0)
- return
- endif
-
- let project = eclim#project#util#GetCurrentProjectName()
- let file = eclim#project#util#GetProjectRelativeFilePath()
- let command = s:command_add
- let command = substitute(command, '', project, '')
- let command = substitute(command, '', file, '')
- call eclim#Execute(command)
-endfunction " }}}
-
-function! eclim#common#history#History() " {{{
- " Opens a temporary buffer with a list of local history revisions.
- if !eclim#project#util#IsCurrentFileInProject()
- return
- endif
-
- let project = eclim#project#util#GetCurrentProjectName()
- let file = eclim#project#util#GetProjectRelativeFilePath()
- let command = s:command_list
- let command = substitute(command, '', project, '')
- let command = substitute(command, '', file, '')
- let history = eclim#Execute(command)
- if type(history) != g:LIST_TYPE
- return
- endif
-
- let lines = [file]
- let revisions = [0]
- let indent = eclim#util#GetIndent(1)
- for rev in history
- call add(lines, indent . rev.datetime . ' (' . rev.delta . ')')
- call add(revisions, rev.timestamp)
- endfor
- call add(lines, '')
- call eclim#util#TempWindow('[History]', lines)
-
- setlocal modifiable noreadonly
- if !g:EclimKeepLocalHistory
- call append(line('$'),
- \ '" Note: local history is currently disabled: ' .
- \ 'g:EclimKeepLocalHistory = ' . g:EclimKeepLocalHistory)
- endif
- call append(line('$'), '" use ? to view help')
- setlocal nomodifiable readonly
- syntax match Comment /^".*/
-
- let b:history_revisions = revisions
- call s:Syntax()
-
- command! -count=1 HistoryDiffNext call s:DiffNextPrev(1, )
- command! -count=1 HistoryDiffPrev call s:DiffNextPrev(-1, )
- augroup eclim_history_window
- autocmd! BufWinLeave
- autocmd BufWinLeave
- \ delcommand HistoryDiffNext |
- \ delcommand HistoryDiffPrev
- augroup END
- noremap :call View()
- noremap d :call Diff()
- noremap r :call Revert()
- noremap c :call Clear(1)
-
- " assign to buffer var to get around weird vim issue passing list containing
- " a string w/ a '<' in it on execution of mapping.
- let b:history_help = [
- \ ' - view the entry',
- \ 'd - diff the file with the version under the cursor',
- \ 'r - revert the file to the version under the cursor',
- \ 'c - clear the history',
- \ ':HistoryDiffNext - diff the file with the next version in the history',
- \ ':HistoryDiffPrev - diff the file with the previous version in the history',
- \ ]
- nnoremap ?
- \ :call eclim#help#BufferHelp(b:history_help, 'vertical', 50)
-endfunction " }}}
-
-function! eclim#common#history#HistoryClear(bang) " {{{
- " Clear the history for the current file.
- if !eclim#project#util#IsCurrentFileInProject()
- return
- endif
-
- call s:Clear(a:bang == '', expand('%:p'))
-endfunction " }}}
-
-function s:View(...) " {{{
- " View the contents of the revision under the cursor.
- if line('.') == 1 || line('.') > len(b:history_revisions)
- return
- endif
-
- let current = b:filename
- let entry = line('.') - 1
- let revision = b:history_revisions[entry]
- if eclim#util#GoToBufferWindow(current)
- let filetype = &ft
- let project = eclim#project#util#GetCurrentProjectName()
- let file = eclim#project#util#GetProjectRelativeFilePath()
- let command = s:command_revision
- let command = substitute(command, '', project, '')
- let command = substitute(command, '', file, '')
- let command = substitute(command, '', revision, '')
- let result = eclim#Execute(command)
- if result == "0"
- return
- endif
-
- let cmd = len(a:000) > 0 ? a:000[0] : 'split'
- call eclim#util#GoToBufferWindowOrOpen(
- \ current . '_' . revision, 'keepalt ' . cmd)
-
- setlocal modifiable
- setlocal noreadonly
-
- let temp = tempname()
- call writefile(split(result, '\n'), temp)
- try
- silent 1,$delete _
- silent read ++edit `=temp`
- silent 1,1delete _
- finally
- call delete(temp)
- endtry
-
- exec 'setlocal filetype=' . filetype
- setlocal nomodified
- setlocal readonly
- setlocal nomodifiable
- setlocal noswapfile
- setlocal nobuflisted
- setlocal buftype=nofile
- setlocal bufhidden=wipe
- doautocmd BufReadPost
-
- call s:HighlightEntry(entry)
-
- return 1
- else
- call eclim#util#EchoWarning('Target file is no longer open.')
- endif
-endfunction " }}}
-
-function s:Diff() " {{{
- " Diff the contents of the revision under the cursor against the current
- " contents.
- let hist_buf = bufnr('%')
- let winend = winnr('$')
- let winnum = 1
- while winnum <= winend
- let bufnr = winbufnr(winnum)
- if getbufvar(bufnr, 'history_diff') != ''
- exec bufnr . 'bd'
- continue
- endif
- let winnum += 1
- endwhile
- call eclim#util#GoToBufferWindow(hist_buf)
-
- let current = b:filename
- let orien = g:EclimHistoryDiffOrientation == 'horizontal' ? '' : 'vertical'
- if s:View(orien . ' below split')
- let b:history_diff = 1
- diffthis
- augroup history_diff
- autocmd! BufWinLeave
- call eclim#util#GoToBufferWindowRegister(current)
- autocmd BufWinLeave diffoff
- augroup END
-
- call eclim#util#GoToBufferWindow(current)
- diffthis
- endif
-endfunction " }}}
-
-function s:DiffNextPrev(dir, count) " {{{
- let winnr = winnr()
- if eclim#util#GoToBufferWindow('[History]')
- let num = v:count > 0 ? v:count : a:count
- let cur = exists('b:history_current_entry') ? b:history_current_entry : 0
- let index = cur + (a:dir * num)
- if index < 0 || index > len(b:history_revisions)
- call eclim#util#EchoError('Operation exceeds history stack range.')
- exec winnr . 'winc w'
- return
- endif
- call cursor(index + 1, 0)
- call s:Diff()
- endif
-endfunction " }}}
-
-function s:Revert() " {{{
- " Revert the file to the revision under the cursor.
- if line('.') == 1 || line('.') > len(b:history_revisions)
- return
- endif
-
- let current = b:filename
- let revision = b:history_revisions[line('.') - 1]
- if eclim#util#GoToBufferWindow(current)
- let project = eclim#project#util#GetCurrentProjectName()
- let file = eclim#project#util#GetProjectRelativeFilePath()
- let command = s:command_revision
- let command = substitute(command, '', project, '')
- let command = substitute(command, '', file, '')
- let command = substitute(command, '', revision, '')
- let result = eclim#Execute(command)
- if result == "0"
- return
- endif
-
- let ff = &ff
- let temp = tempname()
- call writefile(split(result, '\n'), temp)
- try
- silent 1,$delete _
- silent read ++edit `=temp`
- silent 1,1delete _
- finally
- call delete(temp)
- endtry
-
- if ff != &ff
- call eclim#util#EchoWarning(
- \ "Warning: the file format is being reverted from '" . ff . "' to '" .
- \ &ff . "'. Using vim's undo will not restore the previous format so " .
- \ "if you choose to undo the reverting of this file, you will need to " .
- \ "manually set the file format back to " . ff . " (set ff=" . ff . ").")
- endif
- endif
-endfunction " }}}
-
-function s:Clear(prompt, ...) " {{{
- " Optional args:
- " filename
- let response = 1
- if a:prompt
- let response = eclim#util#PromptConfirm(
- \ 'Clear local history?', g:EclimHighlightInfo)
- endif
-
- if response == 1
- let filename = len(a:000) > 0 ? a:000[0] : b:filename
- let current = eclim#project#util#GetProjectRelativeFilePath(filename)
- let project = eclim#project#util#GetCurrentProjectName()
- let command = s:command_clear
- let command = substitute(command, '', project, '')
- let command = substitute(command, '', current, '')
- let result = eclim#Execute(command)
- if result == "0"
- return
- endif
-
- if filename != expand('%:p')
- quit
- endif
- call eclim#util#Echo(result)
- endif
-endfunction " }}}
-
-function! s:Syntax() " {{{
- set ft=eclim_history
- hi link HistoryFile Identifier
- hi link HistoryCurrentEntry Constant
- syntax match HistoryFile /.*\%1l.*/
- syntax match Comment /^".*/
-endfunction " }}}
-
-function s:HighlightEntry(index) " {{{
- let winnr = winnr()
- if eclim#util#GoToBufferWindow('[History]')
- let b:history_current_entry = a:index
- try
- " forces reset of syntax
- call s:Syntax()
- exec 'syntax match HistoryCurrentEntry /.*\%' . (a:index + 1) . 'l.*/'
- finally
- exec winnr . 'winc w'
- endtry
- endif
-endfunction " }}}
-
-" vim:ft=vim:fdm=marker
diff --git a/vim/bundle/eclim/autoload/eclim/common/largefile.vim b/vim/bundle/eclim/autoload/eclim/common/largefile.vim
deleted file mode 100644
index cd3cfc6..0000000
--- a/vim/bundle/eclim/autoload/eclim/common/largefile.vim
+++ /dev/null
@@ -1,58 +0,0 @@
-" Author: Eric Van Dewoestine
-"
-" Description: {{{
-" Initially based on vimscript 1506
-"
-" License:
-"
-" Copyright (C) 2005 - 2012 Eric Van Dewoestine
-"
-" This program is free software: you can redistribute it and/or modify
-" it under the terms of the GNU General Public License as published by
-" the Free Software Foundation, either version 3 of the License, or
-" (at your option) any later version.
-"
-" This program is distributed in the hope that it will be useful,
-" but WITHOUT ANY WARRANTY; without even the implied warranty of
-" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-" GNU General Public License for more details.
-"
-" You should have received a copy of the GNU General Public License
-" along with this program. If not, see .
-"
-" }}}
-
-" Script Settings {{{
-let s:file_size = g:EclimLargeFileSize * 1024 * 1024
-let s:events = ['BufRead', 'CursorHold', 'FileType']
-" }}}
-
-function! eclim#common#largefile#InitSettings() " {{{
- let file = expand("")
- let size = getfsize(file)
- if size >= s:file_size || size == -2
- if !exists('b:save_events')
- let b:save_events = &eventignore
- call s:ApplySettings()
- setlocal noswapfile nowrap bufhidden=unload
- autocmd eclim_largefile BufEnter,BufWinEnter call ApplySettings()
- autocmd eclim_largefile BufLeave,BufWinLeave call RevertSettings()
- endif
- endif
-endfunction " }}}
-
-function! s:ApplySettings() " {{{
- let &eventignore=join(s:events, ',')
- if !exists('b:largefile_notified')
- let b:largefile_notified = 1
- call eclim#util#Echo('Note: Large file settings applied.')
- endif
-endfunction " }}}
-
-function! s:RevertSettings() " {{{
- if exists('b:save_events')
- let &eventignore=b:save_events
- endif
-endfunction " }}}
-
-" vim:ft=vim:fdm=marker
diff --git a/vim/bundle/eclim/autoload/eclim/common/license.vim b/vim/bundle/eclim/autoload/eclim/common/license.vim
deleted file mode 100644
index 4fa954d..0000000
--- a/vim/bundle/eclim/autoload/eclim/common/license.vim
+++ /dev/null
@@ -1,87 +0,0 @@
-" Author: Eric Van Dewoestine
-"
-" Description: {{{
-"
-" License:
-"
-" Copyright (C) 2005 - 2012 Eric Van Dewoestine
-"
-" This program is free software: you can redistribute it and/or modify
-" it under the terms of the GNU General Public License as published by
-" the Free Software Foundation, either version 3 of the License, or
-" (at your option) any later version.
-"
-" This program is distributed in the hope that it will be useful,
-" but WITHOUT ANY WARRANTY; without even the implied warranty of
-" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-" GNU General Public License for more details.
-"
-" You should have received a copy of the GNU General Public License
-" along with this program. If not, see .
-"
-" }}}
-
-" Script Variables {{{
- let s:year = exists('*strftime') ? strftime('%Y') : '2009'
-" }}}
-
-" GetLicense() {{{
-" Retrieves the file containing the license text.
-function! eclim#common#license#GetLicense()
- let file = eclim#project#util#GetProjectSetting('org.eclim.project.copyright')
- if type(file) == g:NUMBER_TYPE
- return
- elseif file == ''
- call eclim#util#EchoWarning(
- \ "Project setting 'org.eclim.project.copyright' has not been supplied.")
- return
- endif
-
- let file = eclim#project#util#GetCurrentProjectRoot() . '/' . file
- if !filereadable(file)
- return
- endif
- return file
-endfunction " }}}
-
-" License(pre, post, mid) {{{
-" Retrieves the license configured license and applies the specified prefix
-" and postfix as the lines before and after the license and uses 'mid' as the
-" prefix for every line.
-" Returns the license as a list of strings.
-function! eclim#common#license#License(pre, post, mid)
- let file = eclim#common#license#GetLicense()
- if type(file) == g:NUMBER_TYPE && file == 0
- return ''
- endif
-
- let contents = readfile(file)
- if a:mid != ''
- call map(contents, 'a:mid . v:val')
- endif
-
- if a:pre != ''
- call insert(contents, a:pre)
- endif
-
- if a:post != ''
- call add(contents, a:post)
- endif
-
- call map(contents, "substitute(v:val, '${year}', s:year, 'g')")
-
- let author = eclim#project#util#GetProjectSetting('org.eclim.user.name')
- if type(author) == g:STRING_TYPE && author != ''
- call map(contents, "substitute(v:val, '${author}', author, 'g')")
- endif
-
- let email = eclim#project#util#GetProjectSetting('org.eclim.user.email')
- if type(email) == g:STRING_TYPE && email != ''
- call map(contents, "substitute(v:val, '${email}', email, 'g')")
- endif
- call map(contents, "substitute(v:val, '\\s\\+$', '', '')")
-
- return contents
-endfunction " }}}
-
-" vim:ft=vim:fdm=marker
diff --git a/vim/bundle/eclim/autoload/eclim/common/locate.vim b/vim/bundle/eclim/autoload/eclim/common/locate.vim
deleted file mode 100644
index 5ca60e8..0000000
--- a/vim/bundle/eclim/autoload/eclim/common/locate.vim
+++ /dev/null
@@ -1,643 +0,0 @@
-" Author: Eric Van Dewoestine
-"
-" License: {{{
-"
-" Copyright (C) 2005 - 2014 Eric Van Dewoestine
-"
-" This program is free software: you can redistribute it and/or modify
-" it under the terms of the GNU General Public License as published by
-" the Free Software Foundation, either version 3 of the License, or
-" (at your option) any later version.
-"
-" This program is distributed in the hope that it will be useful,
-" but WITHOUT ANY WARRANTY; without even the implied warranty of
-" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-" GNU General Public License for more details.
-"
-" You should have received a copy of the GNU General Public License
-" along with this program. If not, see .
-"
-" }}}
-
-" Global Variables {{{
-let g:eclim_locate_default_updatetime = &updatetime
-
-" disable autocomplpop in the locate prompt
-if exists('g:acp_behavior')
- let g:acp_behavior['locate_prompt'] = []
-endif
-
-" }}}
-
-" Script Variables {{{
-let s:command_locate = '-command locate_file -s ""'
-let s:scopes = [
- \ 'project',
- \ 'workspace',
- \ 'buffers',
- \ 'quickfix',
- \ ]
-
-let s:help = [
- \ ' - close the locate prompt + results',
- \ ', - select the next file',
- \ ', - select the previous file',
- \ ' - open selected file w/ default action',
- \ ' - open with :edit',
- \ ' - open in a split window',
- \ ' - open in a new tab',
- \ ' - choose search scope',
- \ ' - toggle help buffer',
- \ ]
-" }}}
-
-function! eclim#common#locate#LocateFile(action, file, ...) " {{{
- " Locates a file using the specified action for opening the file when found.
- " action - '' (use user default), 'split', 'edit', etc.
- " file - 'somefile.txt',
- " '', (kick off completion mode),
- " '' (locate the file under the cursor)
- " scope - optional scope to search in (project, workspace, buffers, etc.)
- let project = eclim#project#util#GetCurrentProjectName()
- let scope = a:0 > 0 ? a:1 : g:EclimLocateFileScope
-
- if !eclim#util#ListContains(s:scopes, scope) &&
- \ !eclim#util#ListContains(g:EclimLocateUserScopes, scope)
- call eclim#util#EchoWarning('Unrecognized scope: ' . scope)
- return
- endif
-
- if scope == 'project' && (project == '' || !eclim#EclimAvailable(0))
- let scope = g:EclimLocateFileNonProjectScope
- endif
-
- let workspace = ''
- if scope == 'project' || scope == 'workspace'
- let instance = eclim#client#nailgun#ChooseEclimdInstance()
- if type(instance) != g:DICT_TYPE
- return
- endif
-
- let workspace = instance.workspace
- if !eclim#PingEclim(0, workspace)
- call eclim#util#EchoError('Unable to connect to eclimd.')
- return
- endif
- endif
-
- let results = []
- let action = a:action
- if action == ''
- let action = g:EclimLocateFileDefaultAction
- endif
-
- let file = a:file
- if file == ''
- call s:LocateFileCompletionInit(action, scope, project, workspace)
- return
- elseif file == ''
- let file = eclim#util#GrabUri()
-
- " if grabbing a relative url, remove any anchor info or query parameters
- let file = substitute(file, '[#?].*', '', '')
- endif
-
- let name = fnamemodify(file, ':t')
- if name == ''
- call eclim#util#Echo('Please supply more than just a directory name.')
- return
- endif
-
- let pattern = file
- let pattern = s:LocateFileConvertPattern(pattern, 0)
- let pattern = '[^/]*' . pattern
- try
- let b:workspace = workspace
- let b:project = project
- let results = s:LocateFileFunction(scope)(pattern)
- finally
- unlet! b:workspace
- unlet! b:project
- endtry
-
- call map(results, "v:val.path")
-
- let result = ''
- " One result.
- if len(results) == 1
- let result = results[0]
-
- " More than one result.
- elseif len(results) > 1
- let message = "Multiple results, choose the file to open"
- let response = eclim#util#PromptList(message, results, g:EclimHighlightInfo)
- if response == -1
- return
- endif
-
- let result = results[response]
-
- " No results
- else
- call eclim#util#Echo('Unable to locate file pattern "' . file . '".')
- return
- endif
-
- if has('win32unix')
- let result = eclim#cygwin#CygwinPath(result)
- endif
-
- call eclim#util#GoToBufferWindowOrOpen(eclim#util#Simplify(result), action)
- call eclim#util#Echo(' ')
-endfunction " }}}
-
-function! eclim#common#locate#LocateFileCompletion() " {{{
- let line = getline('.')
- if line !~ '^> '
- call setline(1, substitute(line, '^>\?\s*', '> \1', ''))
- call cursor(1, 3)
- let line = getline('.')
- endif
-
- let completions = []
- let display = []
- let name = substitute(line, '^>\s*', '', '')
- if name !~ '^\s*$'
- let pattern = name
- let pattern = s:LocateFileConvertPattern(pattern, g:EclimLocateFileFuzzy)
-
- let results = s:LocateFileFunction(b:scope)(pattern)
- if !empty(results)
- for result in results
- let rel = eclim#util#Simplify(get(result, 'projectPath', result.path))
- let dict = {'word': result.name, 'menu': rel, 'info': result.path}
- call add(completions, dict)
- call add(display, result.name . ' ' . rel)
- endfor
- endif
- endif
- let b:completions = completions
- let winnr = winnr()
- noautocmd exec bufwinnr(b:results_bufnum) . 'winc w'
- setlocal modifiable
- 1,$delete _
- call append(1, display)
- 1,1delete _
- setlocal nomodifiable
- exec winnr . 'winc w'
-
- " part of bad hack for gvim on windows
- let b:start_selection = 1
-
- call s:LocateFileSelection(1)
-endfunction " }}}
-
-function! eclim#common#locate#LocateFileClose() " {{{
- if bufname(bufnr('%')) !~ '^\[Locate.*\]$'
- let bufnr = bufnr('\[Locate in *\]')
- let winnr = bufwinnr(bufnr)
- if winnr != -1
- let curbuf = bufnr('%')
- exec winnr . 'winc w'
- try
- exec 'bw ' . b:results_bufnum
- bw
- autocmd! locate_file_init
- stopinsert
- finally
- exec bufwinnr(curbuf) . 'winc w'
- endtry
- endif
- endif
-endfunction " }}}
-
-function! s:LocateFileCompletionInit(action, scope, project, workspace) " {{{
- let file = expand('%')
- let bufnum = bufnr('%')
- let winrestcmd = winrestcmd()
-
- topleft 12split [Locate\ Results]
- set filetype=locate_results
- setlocal nonumber nowrap
- setlocal noswapfile nobuflisted
- setlocal buftype=nofile bufhidden=delete
-
- let results_bufnum = bufnr('%')
-
- let locate_in = (a:scope == 'project' ? a:project : a:scope)
- exec 'topleft 1split ' . escape('[Locate in ' . locate_in . ']', ' -')
- setlocal modifiable
- call setline(1, '> ')
- call cursor(1, col('$'))
- set filetype=locate_prompt
- syntax match Keyword /^>/
- setlocal winfixheight
- setlocal nonumber
- setlocal nolist
- setlocal noswapfile nobuflisted
- setlocal buftype=nofile bufhidden=delete
-
- let b:bufnum = bufnum
- let b:project = a:project
- let b:workspace = a:workspace
- let b:scope = a:scope
- let b:results_bufnum = results_bufnum
- let b:help_bufnum = 0
- let b:selection = 1
- let b:winrestcmd = winrestcmd
-
- set updatetime=300
-
- augroup locate_file_init
- autocmd!
- autocmd BufEnter nested startinsert! | let &updatetime = 300
- autocmd BufLeave \[Locate*\]
- \ call eclim#util#DelayedCommand('call eclim#common#locate#LocateFileClose()')
- exec 'autocmd InsertLeave ' .
- \ 'let &updatetime = g:eclim_locate_default_updatetime | ' .
- \ 'doautocmd BufWinLeave | bw | ' .
- \ 'doautocmd BufWinLeave | bw ' . b:results_bufnum . ' | ' .
- \ 'call eclim#util#GoToBufferWindow(' . b:bufnum . ') | ' .
- \ 'doautocmd BufEnter | ' .
- \ 'doautocmd WinEnter | ' .
- \ winrestcmd
- exec 'autocmd WinEnter '
- \ 'exec bufwinnr(' . bufnr('%') . ') "winc w"'
- augroup END
-
- " enable completion after user starts typing
- call s:LocateFileCompletionAutocmdDeferred()
-
- imap =LocateFileSelection("n")
- imap =LocateFileSelection("n")
- imap =LocateFileSelection("n")
- imap =LocateFileSelection("p")
- imap =LocateFileSelection("p")
- imap =LocateFileSelection("p")
- exec 'imap ' .
- \ '=LocateFileSelect("' . a:action . '")'
- imap =LocateFileSelect('edit')
- imap =LocateFileSelect('split')
- imap =LocateFileSelect("tablast \| tabnew")
- imap =LocateFileChangeScope()
- imap =LocateFileHelp()
-
- startinsert!
-endfunction " }}}
-
-function! s:LocateFileCompletionAutocmd() " {{{
- augroup locate_file
- autocmd!
- autocmd CursorHoldI call eclim#common#locate#LocateFileCompletion()
- augroup END
-endfunction " }}}
-
-function! s:LocateFileCompletionAutocmdDeferred() " {{{
- augroup locate_file
- autocmd!
- autocmd CursorMovedI call LocateFileCompletionAutocmd()
- augroup END
-endfunction " }}}
-
-function! s:LocateFileSelection(sel) " {{{
- " pause completion while tabbing though results
- augroup locate_file
- autocmd!
- augroup END
-
- let sel = a:sel
- let prev_sel = b:selection
-
- " bad hack for gvim on windows
- let start_sel = b:start_selection
- let double_defer = 0
- if sel =~ '^[np]$' && (has('win32') || has('win64'))
- let double_defer = b:start_selection == 1
- let b:start_selection = 0
- endif
-
- let winnr = winnr()
- noautocmd exec bufwinnr(b:results_bufnum) . 'winc w'
-
- if sel == 'n'
- let sel = prev_sel < line('$') ? prev_sel + 1 : 1
- elseif sel == 'p'
- let sel = prev_sel > 1 ? prev_sel - 1 : line('$')
- endif
-
- syntax clear
- exec 'syntax match PmenuSel /\%' . sel . 'l.*/'
- exec 'call cursor(' . sel . ', 1)'
- let save_scrolloff = &scrolloff
- let &scrolloff = 5
- normal! zt
- let &scrolloff = save_scrolloff
-
- exec winnr . 'winc w'
-
- exec 'let b:selection = ' . sel
-
- if double_defer
- augroup locate_file
- autocmd!
- autocmd CursorMovedI call LocateFileCompletionAutocmdDeferred()
- augroup END
- else
- call s:LocateFileCompletionAutocmdDeferred()
- endif
-
- return ''
-endfunction " }}}
-
-function! s:LocateFileSelect(action) " {{{
- if exists('b:completions') && !empty(b:completions)
- let &updatetime = g:eclim_locate_default_updatetime
-
- let file = eclim#util#Simplify(b:completions[b:selection - 1].info)
- if has('win32unix')
- let file = eclim#cygwin#CygwinPath(file)
- endif
-
- let bufnum = b:bufnum
- let winrestcmd = b:winrestcmd
-
- " close locate windows
- exec 'bdelete ' . b:results_bufnum
- exec 'bdelete ' . bufnr('%')
-
- " reset windows to pre-locate sizes
- exec winrestcmd
-
- " open the selected result
- call eclim#util#GoToBufferWindow(bufnum)
- call eclim#util#GoToBufferWindowOrOpen(file, a:action)
- call feedkeys("\", 'n')
- doautocmd WinEnter
- endif
- return ''
-endfunction " }}}
-
-function! s:LocateFileChangeScope() " {{{
- if b:help_bufnum && bufexists(b:help_bufnum)
- exec 'bdelete ' . b:help_bufnum
- endif
-
- let bufnr = bufnr('%')
- let winnr = winnr()
-
- " trigger [Locate] buffer's BufLeave autocmd before we leave the buffer
- doautocmd BufLeave
-
- noautocmd exec bufwinnr(b:results_bufnum) . 'winc w'
- silent noautocmd exec '50vnew [Locate\ Scope]'
-
- let b:locate_bufnr = bufnr
- let b:locate_winnr = winnr
- stopinsert
- setlocal modifiable
- call append(1, s:scopes + g:EclimLocateUserScopes)
- 1,1delete _
- call append(line('$'),
- \ ['', '" - select a scope', '" , , or q - cancel'])
- syntax match Comment /^".*/
- setlocal nomodifiable
- setlocal winfixheight
- setlocal nonumber
- setlocal nolist
- setlocal noswapfile nobuflisted
- setlocal buftype=nofile bufhidden=delete
-
- nnoremap :call ChooseScope()
- nnoremap q :call CloseScopeChooser()
- nnoremap :call CloseScopeChooser()
- nnoremap :call CloseScopeChooser()
-
- autocmd BufLeave call CloseScopeChooser()
-
- return ''
-endfunction " }}}
-
-function! s:ChooseScope() " {{{
- let scope = getline('.')
- if scope =~ '^"\|^\s*$'
- return
- endif
-
- let project = ''
- let locate_in = scope
-
- if scope == 'project'
- let project = ''
- let names = eclim#project#util#GetProjectNames()
- let prompt = 'Choose a project (ctrl-c to cancel): '
- while project == ''
- let project = input(
- \ prompt, '', 'customlist,eclim#project#util#CommandCompleteProject')
- if project == ''
- echo ''
- return
- endif
-
- if !eclim#util#ListContains(names, project)
- let prompt = "Project '" . project . "' not found (ctrl-c to cancel): "
- let project = ''
- endif
- endwhile
- let locate_in = project
- let workspace = eclim#project#util#GetProjectWorkspace(project)
- if type(workspace) == g:LIST_TYPE
- let workspaces = workspace
- unlet workspace
- let response = eclim#util#PromptList(
- \ 'Muliple workspaces found, please choose the target workspace',
- \ workspaces, g:EclimHighlightInfo)
-
- " user cancelled, error, etc.
- if response < 0
- return
- endif
-
- let workspace = workspaces[response]
- endif
-
- elseif scope == 'workspace'
- let project = ''
- let instance = eclim#client#nailgun#ChooseEclimdInstance()
- if type(instance) != g:DICT_TYPE
- return
- endif
- let workspace = instance.workspace
- else
- let workspace = ''
- endif
-
- call s:CloseScopeChooser()
-
- let b:scope = scope
- let b:project = project
- let b:workspace = workspace != '' ? workspace : b:workspace
-
- exec 'file ' . escape('[Locate in ' . locate_in . ']', ' ')
-
- call eclim#common#locate#LocateFileCompletion()
-endfunction " }}}
-
-function! s:CloseScopeChooser() " {{{
- let winnum = b:locate_winnr
- bwipeout
- exec winnum . 'winc w'
-
- " hack to make :q work like the other close mappings
- doautocmd BufEnter
- " if we end up in a non-Locate window, make sure everything is as it should
- " be (a hack for the above hack).
- augroup locate_file_chooser_hack
- autocmd!
- autocmd BufEnter *
- \ if bufname('%') !~ '^\[Locate in .*\]$' |
- \ call eclim#common#locate#LocateFileClose() |
- \ endif |
- \ autocmd! locate_file_chooser_hack
- augroup END
-endfunction " }}}
-
-function! s:LocateFileHelp() " {{{
- let winnr = winnr()
- noautocmd exec bufwinnr(b:results_bufnum) . 'winc w'
- let help_bufnum = eclim#help#BufferHelp(s:help, 'vertical', 50)
- exec winnr . 'winc w'
- let b:help_bufnum = help_bufnum
-
- return ''
-endfunction " }}}
-
-function! s:LocateFileConvertPattern(pattern, fuzzy) " {{{
- let pattern = a:pattern
-
- if a:fuzzy
- let pattern = '.*' . substitute(pattern, '\(.\)', '\1.*?', 'g')
- let pattern = substitute(pattern, '\.\([^*]\)', '\\.\1', 'g')
- else
- " if the user supplied a path, prepend a '.*/' to it so that they don't need
- " to type full paths to match.
- if pattern =~ '.\+/'
- let pattern = '.*/' . pattern
- endif
- let pattern = substitute(pattern, '\*\*', '.*', 'g')
- let pattern = substitute(pattern, '\(^\|\([^.]\)\)\*', '\1[^/]*?', 'g')
- let pattern = substitute(pattern, '\.\([^*]\)', '\\.\1', 'g')
- "let pattern = substitute(pattern, '\([^*]\)?', '\1.', 'g')
- let pattern .= '.*'
- endif
-
- return pattern
-endfunction " }}}
-
-function! s:LocateFileFunction(scope) " {{{
- if eclim#util#ListContains(s:scopes, a:scope)
- return function('s:LocateFile_' . a:scope)
- endif
- return function('LocateFile_' . a:scope)
-endfunction " }}}
-
-function! s:LocateFileCommand(pattern) " {{{
- let command = s:command_locate
- if g:EclimLocateFileCaseInsensitive == 'always' ||
- \ (a:pattern !~# '[A-Z]' && g:EclimLocateFileCaseInsensitive != 'never')
- let command .= ' -i'
- endif
- let command .= ' -p "' . a:pattern . '"'
- return command
-endfunction " }}}
-
-function! s:LocateFile_workspace(pattern) " {{{
- let command = substitute(s:LocateFileCommand(a:pattern), '', 'workspace', '')
- let results = eclim#Execute(command, {'workspace': b:workspace})
- if type(results) != g:LIST_TYPE
- return []
- endif
- return results
-endfunction " }}}
-
-function! s:LocateFile_project(pattern) " {{{
- let command = substitute(s:LocateFileCommand(a:pattern), '', 'project', '')
- let command .= ' -n "' . b:project . '"'
- let results = eclim#Execute(command, {'workspace': b:workspace})
- if type(results) != g:LIST_TYPE
- return []
- endif
- return results
-endfunction " }}}
-
-function! s:LocateFile_buffers(pattern) " {{{
- redir => list
- silent exec 'buffers'
- redir END
-
- let buffers = map(split(list, '\n'),
- \ "substitute(v:val, '.\\{-}\"\\(.\\{-}\\)\".*', '\\1', '')")
- if a:pattern =~ '/'
- let buffers = map(buffers, "fnamemodify(v:val, ':p')")
- endif
-
- if len(buffers) > 0
- let tempfile = substitute(tempname(), '\', '/', 'g')
- call writefile(buffers, tempfile)
- try
- return eclim#common#locate#LocateFileFromFileList(a:pattern, tempfile)
- finally
- call delete(tempfile)
- endtry
- endif
- return []
-endfunction " }}}
-
-function! s:LocateFile_quickfix(pattern) " {{{
- let buffers = []
- let prev = ''
- for entry in getqflist()
- let name = bufname(entry.bufnr)
- if a:pattern =~ '/'
- let name = fnamemodify(name, ':p')
- endif
- if name != prev
- call add(buffers, name)
- let prev = name
- endif
- endfor
-
- if len(buffers) > 0
- let tempfile = substitute(tempname(), '\', '/', 'g')
- call writefile(buffers, tempfile)
- try
- return eclim#common#locate#LocateFileFromFileList(a:pattern, tempfile)
- finally
- call delete(tempfile)
- endtry
- endif
- return []
-endfunction " }}}
-
-function! eclim#common#locate#LocateFileFromFileList(pattern, file) " {{{
- let file = a:file
- if has('win32unix')
- let file = eclim#cygwin#WindowsPath(file)
- endif
- if eclim#EclimAvailable(0)
- let command = substitute(s:LocateFileCommand(a:pattern), '', 'list', '')
- let command .= ' -f "' . file . '"'
- let results = eclim#Execute(command, {'workspace': b:workspace})
- if type(results) != g:LIST_TYPE
- return []
- endif
- else
- let results = []
- for result in readfile(file)
- call add(results, {'name': fnamemodify(result, ':t'), 'path': result})
- endfor
- endif
-
- return results
-endfunction " }}}
-
-" vim:ft=vim:fdm=marker
diff --git a/vim/bundle/eclim/autoload/eclim/common/template.vim b/vim/bundle/eclim/autoload/eclim/common/template.vim
deleted file mode 100644
index c569928..0000000
--- a/vim/bundle/eclim/autoload/eclim/common/template.vim
+++ /dev/null
@@ -1,237 +0,0 @@
-" Author: Eric Van Dewoestine
-"
-" Description: {{{
-"
-" License:
-"
-" Copyright (C) 2005 - 2012 Eric Van Dewoestine
-"
-" This program is free software: you can redistribute it and/or modify
-" it under the terms of the GNU General Public License as published by
-" the Free Software Foundation, either version 3 of the License, or
-" (at your option) any later version.
-"
-" This program is distributed in the hope that it will be useful,
-" but WITHOUT ANY WARRANTY; without even the implied warranty of
-" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-" GNU General Public License for more details.
-"
-" You should have received a copy of the GNU General Public License
-" along with this program. If not, see .
-"
-" }}}
-
-" Global Variables {{{
-if !exists("g:EclimTemplateDir")
- let g:EclimTemplateDir = g:EclimBaseDir . '/template'
-endif
-if !exists("g:EclimTemplateExtension")
- let g:EclimTemplateExtension = '.vim'
-endif
-if !exists("g:EclimTemplateIgnore")
- let g:EclimTemplateIgnore = []
-endif
-" }}}
-
-" Script Variables {{{
-let s:quote = "['\"]"
-let s:tag_regex =
- \ ''
-let s:tagname_regex = '.\{-} 0
- let ext = strpart(filename, stridx(filename, '.'))
- while stridx(ext, '.') != -1
- let ext = strpart(ext, stridx(ext, '.') + 1)
- if filereadable(templatesDir . '/' . ext . g:EclimTemplateExtension)
- return templatesDir . '/' . ext . g:EclimTemplateExtension
- endif
- endwhile
- endif
-
- " template equal to file type
- if filereadable(templatesDir . '/' . &ft . g:EclimTemplateExtension)
- return templatesDir . '/' . &ft . g:EclimTemplateExtension
- endif
-
- return ''
-endfunction " }}}
-
-" s:ExecuteTemplate(lines) {{{
-" Executes any logic in the supplied lines and appends those lines to the
-" current file.
-function! s:ExecuteTemplate(lines)
- for line in a:lines
- if line =~ s:tag_regex
- let tag = substitute(line, s:tagname_regex, '\1', '')
- call s:ExecuteTemplate(s:Process_{tag}(line))
- else
- call append(line('$'), line)
- endif
- endfor
-endfunction " }}}
-
-" s:EvaluateExpression(expression) {{{
-" Evaluates the supplied expression.
-function! s:EvaluateExpression(expression)
- exec "return " . a:expression
-endfunction " }}}
-
-" s:GetAttribute(line, tag, attribute, fail) {{{
-" Gets the an attribute value.
-function! s:GetAttribute(line, tag, attribute, fail)
- let attribute = substitute(a:line,
- \ '.\{-}.*',
- \ '\2', '')
-
- if attribute == a:line
- if a:fail
- call s:TemplateError(
- \ a:line, "syntax error - missing '" . a:attribute . "' attribute")
- endif
- return ""
- endif
- return attribute
-endfunction " }}}
-
-" s:TemplateError(line, message) {{{
-" Echos an error message to the user.
-function! s:TemplateError(line, message)
- call eclim#util#EchoError("Template error, line " . a:line . ": " . a:message)
-endfunction " }}}
-
-" s:Process_var(line) {{{
-" Process tags.
-function! s:Process_var(line)
- let name = expand(s:GetAttribute(a:line, 'var', 'name', 1))
- let value = expand(s:GetAttribute(a:line, 'var', 'value', 1))
-
- exec "let " . name . " = \"" . s:EvaluateExpression(value) . "\""
-
- return []
-endfunction " }}}
-
-" s:Process_import(line) {{{
-" Process tags.
-function! s:Process_import(line)
- let resource = expand(s:GetAttribute(a:line, 'import', 'resource', 1))
- if resource !~ '^/\'
- let resource = expand(g:EclimTemplateDir . '/' . resource)
- endif
-
- if !filereadable(resource)
- call s:TemplateError(a:line, "resource not found '" . resource . "'")
- endif
-
- exec "source " . resource
-
- return []
-endfunction " }}}
-
-" s:Process_out(line) {{{
-" Process tags.
-function! s:Process_out(line)
- let value = s:GetAttribute(a:line, 'out', 'value', 1)
- let result = s:EvaluateExpression(value)
- return s:Out(a:line, '', result)
-endfunction " }}}
-
-" s:Process_include(line) {{{
-" Process tags.
-function! s:Process_include(line)
- let template = expand(
- \ g:EclimTemplateDir . '/' . s:GetAttribute(a:line, 'include', 'template', 1))
-
- if !filereadable(template)
- call s:TemplateError(a:line, "template not found '" . template . "'")
- return []
- endif
-
- return readfile(template)
-endfunction " }}}
-
-" s:Process_username(line) {{{
-" Process tags.
-function! s:Process_username(line)
- silent! let username = eclim#project#util#GetProjectSetting('org.eclim.user.name')
- if type(username) == g:NUMBER_TYPE
- let username = ''
- endif
- return s:Out(a:line, '', username)
-endfunction " }}}
-
-" s:Out(line, pattern, value) {{{
-function! s:Out(line, pattern, value)
- let results = type(a:value) == g:LIST_TYPE ? a:value : [a:value]
- if results[0] == '' && a:line =~ '^\s*' . a:pattern . '\s*$'
- return []
- endif
-
- let line = substitute(a:line, a:pattern, results[0], '')
- return [line] + (len(results) > 1 ? results[1:] : [])
-endfunction " }}}
-
-" vim:ft=vim:fdm=marker
diff --git a/vim/bundle/eclim/autoload/eclim/common/util.vim b/vim/bundle/eclim/autoload/eclim/common/util.vim
deleted file mode 100644
index ce903c4..0000000
--- a/vim/bundle/eclim/autoload/eclim/common/util.vim
+++ /dev/null
@@ -1,257 +0,0 @@
-" Author: Eric Van Dewoestine
-"
-" License: {{{
-"
-" Copyright (C) 2005 - 2014 Eric Van Dewoestine
-"
-" This program is free software: you can redistribute it and/or modify
-" it under the terms of the GNU General Public License as published by
-" the Free Software Foundation, either version 3 of the License, or
-" (at your option) any later version.
-"
-" This program is distributed in the hope that it will be useful,
-" but WITHOUT ANY WARRANTY; without even the implied warranty of
-" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-" GNU General Public License for more details.
-"
-" You should have received a copy of the GNU General Public License
-" along with this program. If not, see .
-"
-" }}}
-
-" Script Variables {{{
-let s:command_read = '-command archive_read -f ""'
-" }}}
-
-function! eclim#common#util#DiffLastSaved() " {{{
- " Diff a modified file with the last saved version.
- if &modified
- let winnum = winnr()
- let filetype=&ft
- vertical belowright new | r #
- 1,1delete _
-
- diffthis
- setlocal buftype=nofile
- setlocal bufhidden=wipe
- setlocal nobuflisted
- setlocal noswapfile
- setlocal readonly
- exec "setlocal ft=" . filetype
- let diffnum = winnr()
-
- augroup diff_saved
- autocmd! BufUnload
- autocmd BufUnload :diffoff!
- augroup END
-
- exec winnum . "winc w"
- diffthis
-
- " for some reason, these settings only take hold if set here.
- call setwinvar(diffnum, "&foldmethod", "diff")
- call setwinvar(diffnum, "&foldlevel", "0")
- else
- echo "No changes"
- endif
-endfunction " }}}
-
-function! eclim#common#util#SwapWords() " {{{
- " Initially based on http://www.vim.org/tips/tip.php?tip_id=329
-
- " save the last search pattern
- let save_search = @/
-
- normal! "_yiw
- s/\(\%#\w\+\)\(\_W\+\)\(\w\+\)/\3\2\1/
- exec "normal! \"
-
- " restore the last search pattern
- let @/ = save_search
-
- silent! call repeat#set(":call eclim#common#util#SwapWords()\", v:count)
-endfunction " }}}
-
-function! eclim#common#util#SwapAround(char) " {{{
- if len(a:char) != 1
- call eclim#util#EchoError('Arg must be a single character.')
- return
- endif
-
- let pos = getpos('.')
- let save_search = @/
- try
- let lnum = line('.')
- let line = getline('.')
- let start_col = 0
- if line[col('.') - 1] =~ '[(\[{]'
- let start_col = col('.')
- normal! %
- endif
- let col = col('.')
- exec 'normal! f' . a:char
- if col('.') == col
- call eclim#util#EchoError('Char not found on this line.')
- return
- endif
-
- let delim_col = col('.')
-
- let [_, end_col] = searchpos('\S', 'b', lnum)
- if !start_col
- if line[col('.') - 1] =~ '[)\]}]'
- normal! %
- let start_col = col('.')
- else
- let [_, start_col] = searchpos('[(\[{' . a:char . ']', 'b', lnum)
- if start_col == end_col
- call eclim#util#EchoError('Unable to determine the start of the first block.')
- return
- endif
- let start_col += 1
- endif
- endif
-
- let first = [start_col, end_col]
-
- call cursor(0, delim_col)
- let [_, start_col] = searchpos('\S', '', lnum)
- if start_col == delim_col
- call eclim#util#EchoError('Could not find item to swap with.')
- return
- endif
- if line[col('.') - 1] =~ '[(\[{]'
- normal! %
- let end_col = col('.')
- else
- let [_, end_col] = searchpos('[)\]}' . a:char . ']', '', lnum)
- if start_col == end_col
- call eclim#util#EchoError('Unable to determine the end of the second block.')
- return
- endif
- let end_col -= 1
- endif
-
- let second = [start_col, end_col]
-
- let first_part = strpart(line, first[0] - 1, first[1] - first[0] + 1)
- let second_part = strpart(line, second[0] - 1, second[1] - second[0] + 1)
-
- " replace second with first
- let prefix = strpart(line, 0, second[0] - 1)
- let suffix = strpart(line, second[1])
- let line = prefix . first_part . suffix
-
- " replace first with second
- let prefix = strpart(line, 0, first[0] - 1)
- let suffix = strpart(line, first[1])
- let line = prefix . second_part . suffix
-
- call setline('.', line)
- silent! call repeat#set(
- \ ":call eclim#common#util#SwapAround(" . string(a:char) . ")\", v:count)
- finally
- call setpos('.', pos)
- let @/ = save_search
- endtry
-endfunction " }}}
-
-function! eclim#common#util#Tcd(dir) " {{{
- " Like vim's :lcd, but tab local instead of window local.
- let t:cwd = fnamemodify(a:dir, ':p')
-
- " initialize the tab cwd for all other tabs if not already set
- let curtab = tabpagenr()
- try
- let index = 1
- while index <= tabpagenr('$')
- if index != curtab
- exec 'tabn ' . index
- if !exists('t:cwd')
- let t:cwd = getcwd()
- " try to find a window without a localdir if necessary
- if haslocaldir()
- let curwin = winnr()
- let windex = 1
- while windex <= winnr('$')
- if windex != curwin
- exec windex . 'winc w'
- if !haslocaldir()
- let t:cwd = getcwd()
- break
- endif
- endif
- let windex += 1
- endwhile
- exec curwin . 'winc w'
- endif
- endif
- endif
- let index += 1
- endwhile
- finally
- exec 'tabn ' . curtab
- endtry
-
- call s:ApplyTcd(0)
-
- augroup tcd
- autocmd!
- autocmd TabEnter * call ApplyTcd(1)
- augroup END
-endfunction " }}}
-
-function! s:ApplyTcd(honor_lcd) " {{{
- if !exists('t:cwd')
- return
- endif
-
- if a:honor_lcd && haslocaldir()
- let lcwd = getcwd()
- exec 'cd ' . escape(t:cwd, ' ')
- exec 'lcd ' . escape(lcwd, ' ')
- else
- exec 'cd ' . escape(t:cwd, ' ')
- endif
-endfunction " }}}
-
-function! eclim#common#util#ReadFile() " {{{
- " Reads the contents of an archived file.
- let archive = substitute(expand('%'), '\', '/', 'g')
- let command = substitute(s:command_read, '', archive, '')
-
- let file = eclim#Execute(command)
-
- if string(file) != '0'
- let project = exists('b:eclim_project') ? b:eclim_project : ''
- let bufnum = bufnr('%')
- if has('win32unix')
- let file = eclim#cygwin#CygwinPath(file)
- endif
- silent exec "keepalt keepjumps edit! " . escape(file, ' ')
- if project != ''
- let b:eclim_project = project
- let b:eclim_file = archive
- endif
-
- exec 'bdelete ' . bufnum
-
- " alternate solution, that keeps the archive url as the buffer's filename,
- " but prevents taglist from being able to parse tags.
- "setlocal noreadonly
- "setlocal modifiable
- "silent! exec "read " . file
- "1,1delete _
-
- silent exec "doautocmd BufReadPre " . file
- silent exec "doautocmd BufReadPost " . file
-
- setlocal readonly
- setlocal nomodifiable
- setlocal noswapfile
- " causes taglist.vim errors (fold then delete fails)
- "setlocal bufhidden=delete
- endif
-endfunction " }}}
-
-" vim:ft=vim:fdm=marker
diff --git a/vim/bundle/eclim/autoload/eclim/css/complete.vim b/vim/bundle/eclim/autoload/eclim/css/complete.vim
deleted file mode 100644
index 15873d1..0000000
--- a/vim/bundle/eclim/autoload/eclim/css/complete.vim
+++ /dev/null
@@ -1,95 +0,0 @@
-" Author: Eric Van Dewoestine
-"
-" Description: {{{
-" see http://eclim.org/vim/css/complete.html
-"
-" License:
-"
-" Copyright (C) 2005 - 2013 Eric Van Dewoestine
-"
-" This program is free software: you can redistribute it and/or modify
-" it under the terms of the GNU General Public License as published by
-" the Free Software Foundation, either version 3 of the License, or
-" (at your option) any later version.
-"
-" This program is distributed in the hope that it will be useful,
-" but WITHOUT ANY WARRANTY; without even the implied warranty of
-" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-" GNU General Public License for more details.
-"
-" You should have received a copy of the GNU General Public License
-" along with this program. If not, see .
-"
-" }}}
-
-" Script Varables {{{
- let s:complete_command =
- \ '-command css_complete -p "" -f "" -o -e '
-" }}}
-
-" CodeComplete(findstart, base) {{{
-" Handles css code completion.
-function! eclim#css#complete#CodeComplete(findstart, base)
- if !eclim#project#util#IsCurrentFileInProject(0)
- return a:findstart ? -1 : []
- endif
-
- if a:findstart
- call eclim#lang#SilentUpdate(1)
-
- " locate the start of the word
- let line = getline('.')
-
- let start = col('.') - 1
-
- while start > 0 && line[start - 1] =~ '[[:alnum:]_-]'
- let start -= 1
- endwhile
-
- return start
- else
- let offset = eclim#util#GetOffset() + len(a:base)
- let project = eclim#project#util#GetCurrentProjectName()
- let file = eclim#lang#SilentUpdate(1, 0)
- if file == ''
- return []
- endif
-
- let command = s:complete_command
- let command = substitute(command, '', project, '')
- let command = substitute(command, '', file, '')
- let command = substitute(command, '', offset, '')
- let command = substitute(command, '', eclim#util#GetEncoding(), '')
-
- let completions = []
- let results = eclim#Execute(command)
- if type(results) != g:LIST_TYPE
- return
- endif
-
- let filter = 0
- for result in results
- let word = result.completion
- if word =~ '^:'
- let word = strpart(word, 1)
- let filter = 1
- endif
-
- let menu = result.menu
- let info = result.info
-
- let dict = {'word': tolower(word), 'menu': menu, 'info': info}
-
- call add(completions, dict)
- endfor
-
- " eclipse doesn't filter out :results properly.
- if filter
- call filter(completions, 'v:val.word =~ "^" . a:base')
- endif
-
- return completions
- endif
-endfunction " }}}
-
-" vim:ft=vim:fdm=marker
diff --git a/vim/bundle/eclim/autoload/eclim/css/validate.vim b/vim/bundle/eclim/autoload/eclim/css/validate.vim
deleted file mode 100644
index 81ec611..0000000
--- a/vim/bundle/eclim/autoload/eclim/css/validate.vim
+++ /dev/null
@@ -1,51 +0,0 @@
-" Author: Eric Van Dewoestine
-"
-" Description: {{{
-" see http://eclim.org/vim/css/validate.html
-"
-" License:
-"
-" Copyright (C) 2012 Eric Van Dewoestine
-"
-" This program is free software: you can redistribute it and/or modify
-" it under the terms of the GNU General Public License as published by
-" the Free Software Foundation, either version 3 of the License, or
-" (at your option) any later version.
-"
-" This program is distributed in the hope that it will be useful,
-" but WITHOUT ANY WARRANTY; without even the implied warranty of
-" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-" GNU General Public License for more details.
-"
-" You should have received a copy of the GNU General Public License
-" along with this program. If not, see .
-"
-" }}}
-
-function! eclim#css#validate#Filter(errors) " {{{
- let results = []
- let ignore_next_parse_error = 0
- for error in a:errors
- " ignore errors related to browser targeted properties
- if error.text =~ '\(^\|\s\)-\(moz\|webkit\|khtml\|o\)-\w\+\>'
- continue
- endif
-
- " ignore errors on IE filter property line
- if getline(error.lnum) =~ '^\s*filter:\s*progid'
- " next parse error will be because of this filter
- let ignore_next_parse_error = 1
- continue
- endif
- if error.text == 'Parse Error' && ignore_next_parse_error
- let ignore_next_parse_error = 0
- continue
- endif
-
- call add(results, error)
- endfor
-
- return results
-endfunction " }}}
-
-" vim:ft=vim:fdm=marker
diff --git a/vim/bundle/eclim/autoload/eclim/cygwin.vim b/vim/bundle/eclim/autoload/eclim/cygwin.vim
deleted file mode 100644
index b313c7d..0000000
--- a/vim/bundle/eclim/autoload/eclim/cygwin.vim
+++ /dev/null
@@ -1,60 +0,0 @@
-" Author: Eric Van Dewoestine
-"
-" Description: {{{
-" Utility functions for cygwin usage.
-"
-" License:
-"
-" Copyright (C) 2005 - 2013 Eric Van Dewoestine
-"
-" This program is free software: you can redistribute it and/or modify
-" it under the terms of the GNU General Public License as published by
-" the Free Software Foundation, either version 3 of the License, or
-" (at your option) any later version.
-"
-" This program is distributed in the hope that it will be useful,
-" but WITHOUT ANY WARRANTY; without even the implied warranty of
-" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-" GNU General Public License for more details.
-"
-" You should have received a copy of the GNU General Public License
-" along with this program. If not, see .
-"
-" }}}
-
-function! eclim#cygwin#CygwinPath(path) " {{{
- return s:Cygpath(a:path, 'cygwin')
-endfunction " }}}
-
-function! eclim#cygwin#WindowsPath(path) " {{{
- if type(a:path) == g:STRING_TYPE && a:path =~? '^[a-z]:'
- return substitute(a:path, '\', '/', 'g')
- endif
- return s:Cygpath(a:path, 'windows')
-endfunction " }}}
-
-function! eclim#cygwin#WindowsHome() " {{{
- if !exists('s:cygpath_winhome')
- let dir = s:Cygpath('-D', 'cygwin')
- let s:cygpath_winhome = dir != '-D' ? fnamemodify(dir, ':h') : ''
- endif
- return s:cygpath_winhome
-endfunction " }}}
-
-function! s:Cygpath(paths, type) " {{{
- if executable('cygpath')
- let paths = type(a:paths) == g:LIST_TYPE ? a:paths : [a:paths]
- let paths = map(paths, "'\"' . substitute(v:val, '\\', '/', 'g') . '\"'")
-
- let args = a:type == 'windows' ? '-m ' : ''
- let results = split(eclim#util#System('cygpath ' . args . join(paths)), "\n")
-
- if type(a:paths) == g:LIST_TYPE
- return results
- endif
- return results[0]
- endif
- return a:paths
-endfunction " }}}
-
-" vim:ft=vim:fdm=marker
diff --git a/vim/bundle/eclim/autoload/eclim/display/menu.vim b/vim/bundle/eclim/autoload/eclim/display/menu.vim
deleted file mode 100644
index add50f8..0000000
--- a/vim/bundle/eclim/autoload/eclim/display/menu.vim
+++ /dev/null
@@ -1,103 +0,0 @@
-" Author: Eric Van Dewoestine
-"
-" Description: {{{
-" Plugin to generate gvim eclim menus.
-"
-" License:
-"
-" Copyright (C) 2005 - 2013 Eric Van Dewoestine
-"
-" This program is free software: you can redistribute it and/or modify
-" it under the terms of the GNU General Public License as published by
-" the Free Software Foundation, either version 3 of the License, or
-" (at your option) any later version.
-"
-" This program is distributed in the hope that it will be useful,
-" but WITHOUT ANY WARRANTY; without even the implied warranty of
-" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-" GNU General Public License for more details.
-"
-" You should have received a copy of the GNU General Public License
-" along with this program. If not, see .
-"
-" }}}
-
-" Script Variables {{{
-
-let s:eclim_menus_root = []
-let s:eclim_menus = {}
-
-" }}}
-
-" Generate() {{{
-" Generate gvim menu items for available eclim commands.
-function! eclim#display#menu#Generate()
- " check that the menu bar is enabled or that we are running in a mac gui where
- " the menu bar always exists regardless of guioptions
- if &guioptions !~ 'm' && !has('gui_macvim')
- if exists('b:eclim_menus')
- unlet b:eclim_menus
- endif
- return
- endif
-
- redir => commands
- silent exec 'command'
- redir END
-
- if !exists('b:eclim_menus')
- let b:eclim_menus = {}
-
- let pattern = '\.
-"
-" }}}
-
-" Script Variables {{{
-
- let s:sign_levels = {
- \ 'trace': 5,
- \ 'debug': 4,
- \ 'info': 3,
- \ 'warning': 2,
- \ 'error': 1,
- \ 'off': 0,
- \ }
-
-" }}}
-
-function! eclim#display#signs#Define(name, text, highlight) " {{{
- " Defines a new sign name or updates an existing one.
- exec "sign define " . a:name . " text=" . a:text . " texthl=" . a:highlight
-endfunction " }}}
-
-function! eclim#display#signs#Place(name, line) " {{{
- " Places a sign in the current buffer.
- if a:line > 0
- let lastline = line('$')
- let line = a:line <= lastline ? a:line : lastline
- let id = a:name == 'placeholder' ? 999999 : line
- exec "sign place " . id . " line=" . line . " name=" . a:name .
- \ " buffer=" . bufnr('%')
- endif
-endfunction " }}}
-
-function! eclim#display#signs#PlaceAll(name, list) " {{{
- " Places a sign in the current buffer for each line in the list.
-
- let lastline = line('$')
- for line in a:list
- if line > 0
- let line = line <= lastline ? line : lastline
- exec "sign place " . line . " line=" . line . " name=" . a:name .
- \ " buffer=" . bufnr('%')
- endif
- endfor
-endfunction " }}}
-
-function! eclim#display#signs#Undefine(name) " {{{
- " Undefines a sign name.
- exec "sign undefine " . a:name
-endfunction " }}}
-
-function! eclim#display#signs#Unplace(id) " {{{
- " Un-places a sign in the current buffer.
- exec 'sign unplace ' . a:id . ' buffer=' . bufnr('%')
-endfunction " }}}
-
-function! eclim#display#signs#UnplaceAll(list) " {{{
- " Un-places all signs in the supplied list from the current buffer.
- " The list may be a list of ids or a list of dictionaries as returned by
- " GetExisting()
-
- for sign in a:list
- if type(sign) == g:DICT_TYPE
- call eclim#display#signs#Unplace(sign['id'])
- else
- call eclim#display#signs#Unplace(sign)
- endif
- endfor
-endfunction " }}}
-
-function! eclim#display#signs#Toggle(name, line) " {{{
- if g:EclimSignLevel == 'off'
- call eclim#util#Echo('Eclim signs have been disabled.')
- return
- endif
-
- " Toggle a sign on the current line.
- if a:line > 0
- let existing = eclim#display#signs#GetExisting(a:name)
- let exists = len(filter(existing, "v:val['line'] == a:line"))
- if exists
- call eclim#display#signs#Unplace(a:line)
- else
- call eclim#display#signs#Place(a:name, a:line)
- endif
- endif
-endfunction " }}}
-
-function! s:CompareSigns(s1, s2) " {{{
- " Used by ViewSigns to sort list of sign dictionaries.
-
- if a:s1.line == a:s2.line
- return 0
- endif
- if a:s1.line > a:s2.line
- return 1
- endif
- return -1
-endfunction " }}}
-
-function! eclim#display#signs#ViewSigns(name) " {{{
- " Open a window to view all placed signs with the given name in the current
- " buffer.
-
- if g:EclimSignLevel == 'off'
- call eclim#util#Echo('Eclim signs have been disabled.')
- return
- endif
-
- let filename = expand('%:p')
- let signs = eclim#display#signs#GetExisting(a:name)
- call sort(signs, 's:CompareSigns')
- let content = map(signs, "v:val.line . '|' . getline(v:val.line)")
-
- call eclim#util#TempWindow('[Sign List]', content)
-
- set ft=qf
- nnoremap :call JumpToSign()
-
- " Store filename so that plugins can use it if necessary.
- let b:filename = filename
- augroup temp_window
- autocmd! BufWinLeave
- call eclim#util#GoToBufferWindowRegister(filename)
- augroup END
-endfunction " }}}
-
-function! s:JumpToSign() " {{{
- let winnr = bufwinnr(bufnr('^' . b:filename))
- if winnr != -1
- let line = substitute(getline('.'), '^\(\d\+\)|.*', '\1', '')
- exec winnr . "winc w"
- call cursor(line, 1)
- endif
-endfunction " }}}
-
-function! eclim#display#signs#GetDefined() " {{{
- " Gets a list of defined sign names.
-
- redir => list
- silent exec 'sign list'
- redir END
-
- let names = []
- for name in split(list, '\n')
- let name = substitute(name, 'sign\s\(.\{-}\)\s.*', '\1', '')
- call add(names, name)
- endfor
- return names
-endfunction " }}}
-
-function! eclim#display#signs#GetExisting(...) " {{{
- " Gets a list of existing signs for the current buffer.
- " The list consists of dictionaries with the following keys:
- " id: The sign id.
- " line: The line number.
- " name: The sign name (erorr, warning, etc.)
- "
- " Optionally a sign name may be supplied to only retrieve signs of that name.
-
- if !has('signs') || g:EclimSignLevel == 'off'
- return []
- endif
-
- let bufnr = bufnr('%')
-
- redir => signs
- silent exec 'sign place buffer=' . bufnr
- redir END
-
- let existing = []
- for line in split(signs, '\n')
- if line =~ '.\{-}=.\{-}=' " only two equals to account for swedish output
- call add(existing, s:ParseSign(line))
- endif
- endfor
-
- if len(a:000) > 0
- call filter(existing, "v:val['name'] == a:000[0]")
- endif
-
- return existing
-endfunction " }}}
-
-function! eclim#display#signs#HasExisting(...) " {{{
- " Determines if there are any existing signs.
- " Optionally a sign name may be supplied to only test for signs of that name.
-
- if !has('signs') || g:EclimSignLevel == 'off'
- return 0
- endif
-
- let bufnr = bufnr('%')
-
- redir => results
- silent exec 'sign place buffer=' . bufnr
- redir END
-
- for line in split(results, '\n')
- if line =~ '.\{-}=.\{-}=' " only two equals to account for swedish output
- if len(a:000) == 0
- return 1
- endif
- let sign = s:ParseSign(line)
- if sign.name == a:000[0]
- return 1
- endif
- endif
- endfor
-
- return 0
-endfunction " }}}
-
-function! s:ParseSign(raw) " {{{
- let attrs = split(a:raw)
-
- exec 'let line = ' . split(attrs[0], '=')[1]
-
- let id = split(attrs[1], '=')[1]
- " hack for the italian localization
- if id =~ ',$'
- let id = id[:-2]
- endif
-
- " hack for the swedish localization
- if attrs[2] =~ '^namn'
- let name = substitute(attrs[2], 'namn=\?', '', '')
- else
- let name = split(attrs[2], '=')[1]
- endif
-
- return {'id': id, 'line': line, 'name': name}
-endfunction " }}}
-
-function! eclim#display#signs#Update() " {{{
- " Updates the signs for the current buffer. This function will read both the
- " location list and the quickfix list and place a sign for any entries for the
- " current file.
- " This function supports a severity level by examining the 'type' key of the
- " dictionaries in the location or quickfix list. It supports 'i' (info), 'w'
- " (warning), and 'e' (error).
-
- if !has('signs') || g:EclimSignLevel == 'off' || &ft == 'qf'
- return
- endif
-
- let save_lazy = &lazyredraw
- set lazyredraw
-
- let placeholder = eclim#display#signs#SetPlaceholder()
-
- " remove all existing signs
- let existing = eclim#display#signs#GetExisting()
- for exists in existing
- if exists.name =~ '^\(qf_\)\?\(error\|info\|warning\)$'
- call eclim#display#signs#Unplace(exists.id)
- endif
- endfor
-
- let qflist = filter(g:EclimShowQuickfixSigns ? getqflist() : [],
- \ 'bufnr("%") == v:val.bufnr')
- let show_loclist = g:EclimShowLoclistSigns && exists('b:eclim_loclist')
- let loclist = filter(show_loclist ? getloclist(0) : [],
- \ 'bufnr("%") == v:val.bufnr')
-
- for [list, marker, prefix] in [
- \ [qflist, g:EclimQuickfixSignText, 'qf_'],
- \ [loclist, g:EclimLoclistSignText, '']]
- if s:sign_levels[g:EclimSignLevel] >= 3
- let info = filter(copy(list), 'v:val.type == "" || tolower(v:val.type) == "i"')
- call eclim#display#signs#Define(prefix . 'info', marker, g:EclimHighlightInfo)
- call eclim#display#signs#PlaceAll(prefix . 'info', map(info, 'v:val.lnum'))
- endif
-
- if s:sign_levels[g:EclimSignLevel] >= 2
- let warnings = filter(copy(list), 'tolower(v:val.type) == "w"')
- call eclim#display#signs#Define(prefix . 'warning', marker, g:EclimHighlightWarning)
- call eclim#display#signs#PlaceAll(prefix . 'warning', map(warnings, 'v:val.lnum'))
- endif
-
- if s:sign_levels[g:EclimSignLevel] >= 1
- let errors = filter(copy(list), 'tolower(v:val.type) == "e"')
- call eclim#display#signs#Define(prefix . 'error', marker, g:EclimHighlightError)
- call eclim#display#signs#PlaceAll(prefix . 'error', map(errors, 'v:val.lnum'))
- endif
- endfor
-
- if placeholder
- call eclim#display#signs#RemovePlaceholder()
- endif
-
- let &lazyredraw = save_lazy
-endfunction " }}}
-
-function! eclim#display#signs#QuickFixCmdPost() " {{{
- " Force 'make' results to be of type error if no type set.
- if expand('') == 'make'
- let newentries = []
- for entry in getqflist()
- if entry['type'] == ''
- let entry['type'] = 'e'
- endif
- call add(newentries, entry)
- endfor
- call setqflist(newentries, 'r')
- endif
- call eclim#display#signs#Update()
- redraw!
-endfunction " }}}
-
-function! eclim#display#signs#SetPlaceholder(...) " {{{
- " Set sign at line 1 to prevent sign column from collapsing, and subsiquent
- " screen redraw.
- " Optional args:
- " only_if_necessary: if 1, only set a placeholder if there are no existing
- " signs
-
- if !has('signs') || g:EclimSignLevel == 'off'
- return
- endif
-
- if len(a:000) > 0 && a:000[0]
- let existing = eclim#display#signs#GetExisting()
- if !len(existing)
- return
- endif
- endif
-
- call eclim#display#signs#Define('placeholder', '_ ', g:EclimHighlightInfo)
- let existing = eclim#display#signs#GetExisting('placeholder')
- if len(existing) == 0 && eclim#display#signs#HasExisting()
- call eclim#display#signs#Place('placeholder', 1)
- return 1
- endif
- return
-endfunction " }}}
-
-function! eclim#display#signs#RemovePlaceholder() " {{{
- if !has('signs') || g:EclimSignLevel == 'off'
- return
- endif
-
- let existing = eclim#display#signs#GetExisting('placeholder')
- for exists in existing
- call eclim#display#signs#Unplace(exists.id)
- endfor
-endfunction " }}}
-
-" define signs for manually added user marks.
-if has('signs')
- call eclim#display#signs#Define(
- \ 'user', g:EclimUserSignText, g:EclimHighlightUserSign)
-endif
-
-" vim:ft=vim:fdm=marker
diff --git a/vim/bundle/eclim/autoload/eclim/display/window.vim b/vim/bundle/eclim/autoload/eclim/display/window.vim
deleted file mode 100644
index 7564ead..0000000
--- a/vim/bundle/eclim/autoload/eclim/display/window.vim
+++ /dev/null
@@ -1,349 +0,0 @@
-" Author: Eric Van Dewoestine
-"
-" License: {{{
-"
-" Copyright (C) 2005 - 2014 Eric Van Dewoestine
-"
-" This program is free software: you can redistribute it and/or modify
-" it under the terms of the GNU General Public License as published by
-" the Free Software Foundation, either version 3 of the License, or
-" (at your option) any later version.
-"
-" This program is distributed in the hope that it will be useful,
-" but WITHOUT ANY WARRANTY; without even the implied warranty of
-" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-" GNU General Public License for more details.
-"
-" You should have received a copy of the GNU General Public License
-" along with this program. If not, see .
-"
-" }}}
-
-" GlobalVariables {{{
-let g:VerticalToolBuffers = {}
-
-if !exists('g:VerticalToolWindowSide')
- let g:VerticalToolWindowSide = 'left'
-endif
-
-if g:VerticalToolWindowSide == 'right'
- let g:VerticalToolWindowPosition = 'botright vertical'
-else
- let g:VerticalToolWindowPosition = 'topleft vertical'
-endif
-
-if !exists('g:VerticalToolWindowWidth')
- let g:VerticalToolWindowWidth = 30
-endif
-" }}}
-
-function! eclim#display#window#VerticalToolWindowOpen(name, weight, ...) " {{{
- " Handles opening windows in the vertical tool window on the left (taglist,
- " project tree, etc.)
-
- let taglist_window = -1
- if exists('g:TagList_title')
- let taglist_window = bufwinnr(eclim#util#EscapeBufferName(g:TagList_title))
- let taglist_position = 'left'
- if exists('g:Tlist_Use_Horiz_Window') && g:Tlist_Use_Horiz_Window
- let taglist_position = 'horizontal'
- elseif exists('g:TaglistTooPosition')
- let taglist_position = g:TaglistTooPosition
- elseif exists('g:Tlist_Use_Right_Window') && g:Tlist_Use_Right_Window
- let taglist_position = 'right'
- endif
- endif
- if taglist_window == -1 && exists(':TagbarOpen')
- let taglist_window = bufwinnr('__Tagbar__')
- let taglist_position = 'right'
- if exists('g:tagbar_left') && g:tagbar_left
- let taglist_position = 'left'
- endif
- endif
- if taglist_window != -1
- " don't consider horizontal taglist, or taglist configured to display
- " opposite the tool windows as a tool window member.
- if taglist_position != g:VerticalToolWindowSide
- let taglist_window = -1
- endif
- endif
-
-
- let relative_window = 0
- let relative_window_loc = 'below'
- if taglist_window != -1 || len(g:VerticalToolBuffers) > 0
- if taglist_window != -1
- let relative_window = taglist_window
- endif
- for toolbuf in keys(g:VerticalToolBuffers)
- exec 'let toolbuf = ' . toolbuf
- if bufwinnr(toolbuf) != -1
- if relative_window == 0
- let relative_window = bufwinnr(toolbuf)
- if getbufvar(toolbuf, 'weight') > a:weight
- let relative_window_loc = 'below'
- else
- let relative_window_loc = 'above'
- endif
- elseif getbufvar(toolbuf, 'weight') > a:weight
- let relative_window = bufwinnr(toolbuf)
- let relative_window_loc = 'below'
- endif
- endif
- endfor
- endif
-
- if relative_window != 0
- let wincmd = relative_window . 'winc w | keepalt ' . relative_window_loc . ' '
- else
- let wincmd = 'keepalt ' . g:VerticalToolWindowPosition . ' ' . g:VerticalToolWindowWidth
- endif
-
- let escaped = substitute(
- \ a:name, '\(.\{-}\)\[\(.\{-}\)\]\(.\{-}\)', '\1[[]\2[]]\3', 'g')
- if a:0 && a:1
- let bufnum = -1
- for bnr in tabpagebuflist()
- if bufname(bnr) == a:name
- let bufnum = bnr
- break
- endif
- endfor
- else
- let bufnum = bufnr(escaped)
- endif
- let name = bufnum == -1 ? a:name : '+buffer' . bufnum
- silent call eclim#util#ExecWithoutAutocmds(wincmd . ' split ' . name)
-
- doautocmd BufWinEnter
- setlocal winfixwidth
- setlocal nonumber
- setlocal nospell norelativenumber
-
- let b:weight = a:weight
- let bufnum = bufnr('%')
- let g:VerticalToolBuffers[bufnum] = a:name
- augroup eclim_vertical_tool_windows
- autocmd!
- autocmd BufDelete * call s:PreventCloseOnBufferDelete()
- autocmd BufEnter * nested call s:CloseIfLastWindow()
- augroup END
-
- if exists('g:TagList_title') &&
- \ (!exists('g:Tlist_Use_Horiz_Window') || !g:Tlist_Use_Horiz_Window)
- augroup eclim_vertical_tool_windows_move_taglist
- autocmd!
- exec 'autocmd BufWinEnter ' . eclim#util#EscapeBufferName(g:TagList_title) .
- \ ' call s:MoveRelativeTo()'
- augroup END
- endif
- if exists(':TagbarOpen')
- augroup eclim_vertical_tool_windows_move_tagbar
- autocmd!
- autocmd BufWinEnter __Tagbar__ call s:MoveRelativeTo()
- augroup END
- endif
- augroup eclim_vertical_tool_windows_buffer
- exec 'autocmd BufWinLeave ' .
- \ 'silent! call remove(g:VerticalToolBuffers, ' . bufnum . ') | ' .
- \ 'autocmd! eclim_vertical_tool_windows_buffer * '
- augroup END
-endfunction " }}}
-
-function! eclim#display#window#VerticalToolWindowRestore() " {{{
- " Used to restore the tool windows to their proper width if some action
- " altered them.
-
- for toolbuf in keys(g:VerticalToolBuffers)
- exec 'let toolbuf = ' . toolbuf
- if bufwinnr(toolbuf) != -1
- exec 'vertical ' . bufwinnr(toolbuf) . 'resize ' . g:VerticalToolWindowWidth
- endif
- endfor
-endfunction " }}}
-
-function! eclim#display#window#GetWindowOptions(winnum) " {{{
- " Gets a dictionary containing all the localy set options for the specified
- " window.
-
- let curwin = winnr()
- try
- exec a:winnum . 'winc w'
- redir => list
- silent exec 'setlocal'
- redir END
- finally
- exec curwin . 'winc w'
- endtry
-
- let list = substitute(list, '---.\{-}---', '', '')
- let winopts = {}
- for wopt in split(list, '\(\n\|\s\s\+\)')[1:]
- if wopt =~ '^[a-z]'
- if wopt =~ '='
- let key = substitute(wopt, '\(.\{-}\)=.*', '\1', '')
- let value = substitute(wopt, '.\{-}=\(.*\)', '\1', '')
- let winopts[key] = value
- else
- let winopts[wopt] = ''
- endif
- endif
- endfor
- return winopts
-endfunction " }}}
-
-function! eclim#display#window#SetWindowOptions(winnum, options) " {{{
- " Given a dictionary of options, sets each as local options for the specified
- " window.
-
- let curwin = winnr()
- try
- exec a:winnum . 'winc w'
- for key in keys(a:options)
- if key =~ '^no'
- silent! exec 'setlocal ' . key
- else
- silent! exec 'setlocal ' . key . '=' . escape(a:options[key], ' ')
- endif
- endfor
- finally
- exec curwin . 'winc w'
- endtry
-endfunction " }}}
-
-function! s:CloseIfLastWindow() " {{{
- if histget(':', -1) !~ '^bd'
- let close = 1
- for bufnr in tabpagebuflist()
- if has_key(g:VerticalToolBuffers, bufnr)
- continue
- endif
- if exists('g:TagList_title') && bufname(bufnr) == g:TagList_title
- continue
- endif
- if exists('g:BufExplorer_title') && bufname(bufnr) == '[BufExplorer]'
- let close = 0
- break
- endif
-
- let buftype = getbufvar(bufnr, '&buftype')
- if buftype != '' && buftype != 'help'
- continue
- endif
-
- let close = 0
- break
- endfor
-
- if close
- if tabpagenr('$') > 1
- tabclose
- else
- quitall
- endif
- endif
- endif
-endfunction " }}}
-
-function! s:MoveRelativeTo() " {{{
- " get the buffer that the taglist was opened from
- let curwin = winnr()
- let list_buffer = bufnr('%')
- winc p
- let orig_buffer = bufnr('%')
- exec curwin . 'winc p'
-
- for toolbuf in keys(g:VerticalToolBuffers)
- exec 'let toolbuf = ' . toolbuf
- if bufwinnr(toolbuf) != -1
- call setwinvar(bufwinnr(toolbuf), 'marked_for_removal', 1)
- let winoptions = eclim#display#window#GetWindowOptions(bufwinnr(toolbuf))
- call remove(winoptions, 'filetype')
- call remove(winoptions, 'syntax')
- call eclim#display#window#VerticalToolWindowOpen(
- \ g:VerticalToolBuffers[toolbuf], getbufvar(toolbuf, 'weight'))
- call eclim#display#window#SetWindowOptions(winnr(), winoptions)
- endif
- endfor
-
- let winnum = 1
- while winnum <= winnr('$')
- if getwinvar(winnum, 'marked_for_removal') == 1
- exec winnum . 'winc w'
- close
- else
- let winnum += 1
- endif
- endwhile
- call eclim#display#window#VerticalToolWindowRestore()
-
- " some window juggling so that winc p from taglist goes back to the original
- " buffer
- exec bufwinnr(orig_buffer) . 'winc w'
- exec bufwinnr(list_buffer) . 'winc w'
-endfunction " }}}
-
-function! s:PreventCloseOnBufferDelete() " {{{
- let index = 1
- let numtoolwindows = 0
- let numtempwindows = 0
- let tempbuffersbot = []
- while index <= winnr('$')
- let buf = winbufnr(index)
- let bufname = bufname(buf)
- if index(keys(g:VerticalToolBuffers), string(buf)) != -1
- let numtoolwindows += 1
- elseif getwinvar(index, '&winfixheight') || getwinvar(index, '&winfixwidth')
- let numtempwindows += 1
- if getwinvar(index, '&winfixheight')
- call add(tempbuffersbot, buf)
- endif
- endif
- let index += 1
- endwhile
-
- if winnr('$') == (numtoolwindows + numtempwindows)
- let toolbuf = bufnr('%')
- if g:VerticalToolWindowSide == 'right'
- vertical topleft new
- else
- vertical botright new
- endif
- setlocal noreadonly modifiable
- let curbuf = bufnr('%')
- let removed = str2nr(expand(''))
- let next = eclim#common#buffers#OpenNextHiddenTabBuffer(removed)
- if next != 0
- let curbuf = next
- endif
-
- " resize windows
- exec bufwinnr(toolbuf) . 'winc w'
- exec 'vertical resize ' . g:VerticalToolWindowWidth
-
- " fix the position of the temp windows
- for buf in tempbuffersbot
- " open the buffer in the temp window position
- botright 10new
- exec 'buffer ' . buf
- setlocal winfixheight
-
- " close the old window
- let winnr = winnr()
- let index = 1
- while index <= winnr('$')
- if winbufnr(index) == buf && index != winnr
- exec index . 'winc w'
- close
- winc p
- break
- endif
- let index += 1
- endwhile
- endfor
-
- exec bufwinnr(curbuf) . 'winc w'
- endif
-endfunction " }}}
-
-" vim:ft=vim:fdm=marker
diff --git a/vim/bundle/eclim/autoload/eclim/dltk/buildpath.vim b/vim/bundle/eclim/autoload/eclim/dltk/buildpath.vim
deleted file mode 100644
index c9376ff..0000000
--- a/vim/bundle/eclim/autoload/eclim/dltk/buildpath.vim
+++ /dev/null
@@ -1,196 +0,0 @@
-" Author: Eric Van Dewoestine
-"
-" Description: {{{
-" see http://eclim.org/vim/php/buildpath.html
-"
-" License:
-"
-" Copyright (C) 2005 - 2013 Eric Van Dewoestine
-"
-" This program is free software: you can redistribute it and/or modify
-" it under the terms of the GNU General Public License as published by
-" the Free Software Foundation, either version 3 of the License, or
-" (at your option) any later version.
-"
-" This program is distributed in the hope that it will be useful,
-" but WITHOUT ANY WARRANTY; without even the implied warranty of
-" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-" GNU General Public License for more details.
-"
-" You should have received a copy of the GNU General Public License
-" along with this program. If not, see