1
1
" vim: ts = 4 shiftwidth = 4 expandtab fdm = marker
2
2
3
- " version: 0.6
4
- " lastchange: 2008-12-15
3
+ " version: 0.6.2
4
+ " lastchange: 2008-12-17
5
5
6
6
7
7
if ! has (' python' )
25
25
cmd_check = ' noremap <buffer> %s :py pysyntaxchecker.check()<CR>' % key_check
26
26
vim .command (cmd_check)
27
27
if check_when_saving:
28
- cmd = ' autocmd BufWritePost *.py py pysyntaxchecker.check()'
28
+ filename = " " " vim.eval(" expand (' <afile>:p' )" )" " "
29
+ cmd = ' autocmd BufWritePost *.py py pysyntaxchecker.check(%s)' % filename
30
+ vim .command (cmd)
31
+ cmd = ' autocmd BufLeave *.py py quickfix.close()'
29
32
vim .command (cmd)
30
33
31
34
eof
@@ -40,51 +43,12 @@ let g:loaded_pysyntaxchecker=1
40
43
python << end
41
44
42
45
import vim
46
+ import compiler
43
47
try :
44
48
from pyflakes.checker import Checker
45
49
except: # pyflakes version <= 0.2 .1
46
50
from pyflakes import Checker
47
51
48
- def vimeval (expr ):
49
- vim .command (' let g:pcs_variant = eval("%s")' % expr )
50
- isint = bool (int (vim .eval (' type(pcs_variant) == type(0)' )))
51
- isfunc = bool (int (vim .eval (' type(pcs_variant) == type(function("tr"))' )))
52
- isfloat = bool (int (vim .eval (' type(pcs_variant) == type(0.0)' )))
53
- value = vim .eval (' pcs_variant' )
54
- if isint:
55
- value = int (value)
56
- elif isfloat:
57
- value = float (value)
58
- elif isfunc:
59
- raise VimError, ' Not supported date type'
60
- else : # cound treat correctly
61
- pass
62
- return value
63
-
64
- class VimOption (object):
65
- setcmd = ' set'
66
-
67
- def __getattr__ (self , name):
68
- _value = vim .eval (' &%s' % name)
69
- if isinstance (_value, int):
70
- try :
71
- vim .eval (' &no%s' % name)
72
- value = bool (_value)
73
- except VimError:
74
- value = int (_value)
75
- else :
76
- value = str (_value)
77
- return value
78
-
79
- def __setattr__ (self , name, value):
80
- if isinstance (value, bool): # is boolean
81
- opt = name if value else ' no%s' % name
82
- else : # is number or string
83
- opt = ' %s=%s' % (name, value)
84
- return vim .command (' %s %s' % (self .setcmd, opt ))
85
-
86
- vimopt = VimOption ()
87
-
88
52
class VimFunction (object):
89
53
def __getattr__ (self , name):
90
54
self .func_name = name
@@ -119,7 +83,7 @@ class VimQuickFix(object):
119
83
if msgs:
120
84
keys = [' filename' , ' lnum' , ' text' , ' type' ]
121
85
# errors = [dict (zip (keys , msg)) for msg in msgs if None not in msg]
122
- errors = [dict (zip (keys , msg)) for msg in msgs]
86
+ errors = [dict (zip (keys , msg)) for msg in msgs]
123
87
vimfunc.setqflist (errors, ' r' )
124
88
self .open ()
125
89
else :
@@ -128,12 +92,11 @@ class VimQuickFix(object):
128
92
quickfix = VimQuickFix ()
129
93
130
94
class PySyntaxChecker (object):
131
- def check (self ):
132
- source = ' \n' .join (vim .current.buffer [:])
133
- filename = vimfunc.expand (r " %:p" )
134
- self ._check (source , filename)
135
-
136
- def _check (self , source , filename):
95
+ def check (self , filename= None):
96
+ if not filename:
97
+ filename = vim .eval (" expand('%:p')" )
98
+ source = open (filename, ' r' ).read ()
99
+ print >> open (' /tmp/vim.log' , ' a' ), filename, source
137
100
msgs = []
138
101
try :
139
102
tree = compiler .parse (source )
0 commit comments