Skip to content

Commit

Permalink
app-vim/editorconfig-vim: Revision bump, pull in some fixes from upst…
Browse files Browse the repository at this point in the history
…ream git

Package-Manager: portage-2.3.2
  • Loading branch information
chutz committed Nov 8, 2016
1 parent 4b6e0b5 commit 0203c95
Show file tree
Hide file tree
Showing 4 changed files with 331 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,12 @@ DEPEND="dev-python/editorconfig-core-py[${PYTHON_USEDEP}]
app-editors/gvim[python,${PYTHON_USEDEP}]
)"

PATCHES=(
"${FILESDIR}/${P}-python3.patch"
"${FILESDIR}/${P}-max-line-length-off.patch"
"${FILESDIR}/${P}-fixes.patch"
)

VIM_PLUGIN_HELPFILES="${PN%-vim}.txt"

src_prepare() {
Expand Down
92 changes: 92 additions & 0 deletions app-vim/editorconfig-vim/files/editorconfig-vim-0.3.3-fixes.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
diff --git a/doc/editorconfig.txt b/doc/editorconfig.txt
index bd6173b..3b32012 100644
--- a/doc/editorconfig.txt
+++ b/doc/editorconfig.txt
@@ -79,7 +79,8 @@ empty. There are 3 modes currently: "external_command", "python_builtin",
"python_external".

python_builtin: Use the vim built-in python to run the python version
- EditorConfig Core.
+ EditorConfig Core. In this mode, Python 2.5 or higher
+ is required.
python_external: Use an external python interpreter to run the python
version EditorConfig Core.
external_command: Run external EditorConfig Core.
diff --git a/plugin/editorconfig.vim b/plugin/editorconfig.vim
index af4f630..9abd008 100644
--- a/plugin/editorconfig.vim
+++ b/plugin/editorconfig.vim
@@ -121,15 +121,15 @@ function! s:FindPythonFiles() " {{{1

let l:python_core_files_dir = fnamemodify(
\ findfile(g:EditorConfig_python_files_dir . '/main.py',
- \ ','.&runtimepath), ':p:h')
+ \ fnameescape(','.&runtimepath)), ':p:h')

if empty(l:python_core_files_dir)
let l:python_core_files_dir = ''
else

- " expand python core file path to full path, and remove the appending '/'
- let l:python_core_files_dir = substitute(
- \ fnamemodify(l:python_core_files_dir, ':p'), '/$', '', '')
+ " expand python core file path to full path, and remove the appending '/'
+ let l:python_core_files_dir = substitute(
+ \ fnamemodify(l:python_core_files_dir, ':p'), '/$', '', '')
endif

let &shellslash = l:old_shellslash
@@ -247,7 +247,7 @@ function! s:InitializePythonBuiltin(editorconfig_core_py_dir) " {{{2
" The following line modifies l:ret. This is a bit confusing but
" unfortunately to be compatible with Vim 7.3, we cannot use pyeval. This
" should be changed in the future.
- execute s:pyfile_cmd s:pyscript_path
+ execute s:pyfile_cmd fnameescape(s:pyscript_path)

return l:ret
endfunction
@@ -327,14 +327,19 @@ endif

function! s:UseConfigFiles()

+ let l:buffer_name = expand('%:p')
" ignore buffers without a name
- if empty(expand('%:p'))
+ if empty(l:buffer_name)
return
endif

+ if g:EditorConfig_verbose
+ echo 'Applying EditorConfig on file "' . l:buffer_name . '"'
+ endif
+
" Ignore specific patterns
for pattern in g:EditorConfig_exclude_patterns
- if expand('%:p') =~ pattern
+ if l:buffer_name =~ pattern
return
endif
endfor
@@ -386,8 +391,8 @@ endfunction
function! s:UseConfigFiles_Python_External() " {{{2
" Use external python interp to run the python EditorConfig Core

- let l:cmd = s:editorconfig_python_interp . ' ' .
- \ s:editorconfig_core_py_dir . '/main.py'
+ let l:cmd = shellescape(s:editorconfig_python_interp) . ' ' .
+ \ shellescape(s:editorconfig_core_py_dir . '/main.py')

call s:SpawnExternalParser(l:cmd)

@@ -445,6 +450,11 @@ function! s:SpawnExternalParser(cmd) " {{{2
return
endif

+ if g:EditorConfig_verbose
+ echo 'Output from EditorConfig core executable:'
+ echo l:parsing_result
+ endif
+
for one_line in l:parsing_result
let l:eq_pos = stridx(one_line, '=')

Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
commit 6e7011712398e53671e5a44edefeb68914562a3a
Author: Hong Xu <[email protected]>
Date: Wed Apr 6 00:34:26 2016 -0700

Support max_line_length=off to leave the decision to the editor settings.

diff --git a/plugin/editorconfig.vim b/plugin/editorconfig.vim
index 9abd008..0e9d647 100644
--- a/plugin/editorconfig.vim
+++ b/plugin/editorconfig.vim
@@ -563,7 +563,8 @@ function! s:ApplyConfig(config) " {{{1
endif

" highlight the columns following max_line_length
- if has_key(a:config, 'max_line_length')
+ if has_key(a:config, 'max_line_length') &&
+ \ a:config['max_line_length'] != 'off'
let l:max_line_length = str2nr(a:config['max_line_length'])

if l:max_line_length >= 0
213 changes: 213 additions & 0 deletions app-vim/editorconfig-vim/files/editorconfig-vim-0.3.3-python3.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,213 @@
commit c2b7a104b826b7ff9283d32cb95a039ddccde79b
Author: Shunsuke Shimizu <[email protected]>
Date: Sun Jan 10 00:12:10 2016 -0800

Make the plugin to be compatible with Python 3.

Squashed commit of the following:

commit 0973c5179e504ffbd74a38d6557bb49fe3bf8b5d
Author: Hong Xu <[email protected]>
Date: Sun Jan 10 00:11:11 2016 -0800

Some minor corrections

commit ca17e97e86bd6379bcf3782adfa200c1589cab69
Author: Shunsuke Shimizu <[email protected]>
Date: Sun Jan 10 15:24:13 2016 +0900

vim 7.3 support by using `py[3]` command instead of `py[3]eval()` function

commit c51ae80ce0ca8fe24c014a7c2d54a85d604d3c88
Author: grafi <[email protected]>
Date: Sun Jan 10 14:42:38 2016 +0900

use print_function on python2

commit 401a9486bba7528aa4d54b06b8ef3ace582829c9
Author: grafi <[email protected]>
Date: Sun Jan 10 14:33:25 2016 +0900

assure that sys.path is cleaned

commit f3bf442429d9579a336a1bb8f98fee82710fbd1e
Author: grafi <[email protected]>
Date: Sun Jan 10 14:22:45 2016 +0900

python3 style print

commit 8e059379328b23e4253f76cbd72d3ef484501d42
Author: Shunsuke Shimizu <[email protected]>
Date: Sat Dec 26 07:54:49 2015 +0900

Support python3

diff --git a/plugin/editorconfig.py b/plugin/editorconfig.py
new file mode 100644
index 0000000..21ea9c7
--- /dev/null
+++ b/plugin/editorconfig.py
@@ -0,0 +1,42 @@
+from __future__ import print_function
+
+try:
+ try:
+ import vim
+ import sys
+ except:
+ vim.command('let l:ret = 2')
+ raise
+
+ try:
+ sys.path.insert(0, vim.eval('a:editorconfig_core_py_dir'))
+
+ import editorconfig
+ import editorconfig.exceptions as editorconfig_except
+ except:
+ vim.command('let l:ret = 3')
+ raise
+ finally:
+ del sys.path[0]
+
+ # `ec_` prefix is used in order to keep clean Python namespace
+ ec_data = {}
+
+ def ec_UseConfigFiles():
+ ec_data['filename'] = vim.eval("expand('%:p')")
+ ec_data['conf_file'] = ".editorconfig"
+
+ try:
+ ec_data['options'] = editorconfig.get_properties(ec_data['filename'])
+ except editorconfig_except.EditorConfigError as e:
+ if int(vim.eval('g:EditorConfig_verbose')) != 0:
+ print(str(e), file=sys.stderr)
+ vim.command('let l:ret = 1')
+ return
+
+ for key, value in ec_data['options'].items():
+ vim.command("let l:config['" + key.replace("'", "''") + "'] = " +
+ "'" + value.replace("'", "''") + "'")
+
+except:
+ pass
diff --git a/plugin/editorconfig.vim b/plugin/editorconfig.vim
index a21b103..af4f630 100644
--- a/plugin/editorconfig.vim
+++ b/plugin/editorconfig.vim
@@ -36,6 +36,8 @@ let g:loaded_EditorConfig = 1
let s:saved_cpo = &cpo
set cpo&vim

+let s:pyscript_path = expand('<sfile>:p:r') . '.py'
+
" variables {{{1
if !exists('g:EditorConfig_exec_path')
let g:EditorConfig_exec_path = ''
@@ -231,48 +233,23 @@ function! s:InitializePythonBuiltin(editorconfig_core_py_dir) " {{{2

let s:builtin_python_initialized = 1

- let l:ret = 0
-
- if !has('python')
+ if has('python')
+ let s:pyfile_cmd = 'pyfile'
+ let s:py_cmd = 'py'
+ elseif has('python3')
+ let s:pyfile_cmd = 'py3file'
+ let s:py_cmd = 'py3'
+ else
return 1
endif

- python << EEOOFF
-
-try:
- import vim
- import sys
-except:
- vim.command('let l:ret = 2')
-
-EEOOFF
-
- if l:ret != 0
- return l:ret
- endif
-
- python << EEOOFF
-
-try:
- sys.path.insert(0, vim.eval('a:editorconfig_core_py_dir'))
-
- import editorconfig
- import editorconfig.exceptions as editorconfig_except
-
-except:
- vim.command('let l:ret = 3')
-
-del sys.path[0]
-
-ec_data = {} # used in order to keep clean Python namespace
-
-EEOOFF
-
- if l:ret != 0
- return l:ret
- endif
+ let l:ret = 0
+ " The following line modifies l:ret. This is a bit confusing but
+ " unfortunately to be compatible with Vim 7.3, we cannot use pyeval. This
+ " should be changed in the future.
+ execute s:pyfile_cmd s:pyscript_path

- return 0
+ return l:ret
endfunction

" Do some initalization for the case that the user has specified core mode {{{1
@@ -388,41 +365,22 @@ augroup END
function! s:UseConfigFiles_Python_Builtin() " {{{2
" Use built-in python to run the python EditorConfig core

- let l:config = {}
- let l:ret = 0
-
" ignore buffers that do not have a file path associated
if empty(expand('%:p'))
return 0
endif

- python << EEOOFF
-
-ec_data['filename'] = vim.eval("expand('%:p')")
-ec_data['conf_file'] = ".editorconfig"
-
-try:
- ec_data['options'] = editorconfig.get_properties(ec_data['filename'])
-except editorconfig_except.EditorConfigError as e:
- if int(vim.eval('g:EditorConfig_verbose')) != 0:
- print >> sys.stderr, str(e)
- vim.command('let l:ret = 1')
+ let l:config = {}

-EEOOFF
+ let l:ret = 0
+ execute s:py_cmd 'ec_UseConfigFiles()'
if l:ret != 0
return l:ret
endif

- python << EEOOFF
-for key, value in ec_data['options'].items():
- vim.command("let l:config['" + key.replace("'", "''") + "'] = " +
- "'" + value.replace("'", "''") + "'")
-
-EEOOFF
-
call s:ApplyConfig(l:config)

- return 0
+ return l:ret
endfunction

function! s:UseConfigFiles_Python_External() " {{{2

0 comments on commit 0203c95

Please sign in to comment.