mirror of
https://github.com/vim/vim.git
synced 2025-07-04 23:07:33 -04:00
updated for version 7.0e04
This commit is contained in:
parent
8424a624ce
commit
fc1421eb53
@ -1,7 +1,7 @@
|
||||
" Vim completion script
|
||||
" Language: HTML (XHTML 1.0 Strict by default)
|
||||
" Language: HTML and XHTML
|
||||
" Maintainer: Mikolaj Machowski ( mikmach AT wp DOT pl )
|
||||
" Last Change: 2006 Apr 17
|
||||
" Last Change: 2006 Apr 20
|
||||
|
||||
function! htmlcomplete#CompleteTags(findstart, base)
|
||||
if a:findstart
|
||||
@ -159,12 +159,12 @@ function! htmlcomplete#CompleteTags(findstart, base)
|
||||
if exists("b:entitiescompl")
|
||||
unlet! b:entitiescompl
|
||||
|
||||
if !exists("g:html_omni")
|
||||
if !exists("b:html_omni")
|
||||
"runtime! autoload/xml/xhtml10s.vim
|
||||
call htmlcomplete#LoadData()
|
||||
endif
|
||||
|
||||
let entities = g:html_omni['vimxmlentities']
|
||||
let entities = b:html_omni['vimxmlentities']
|
||||
|
||||
if len(a:base) == 1
|
||||
for m in entities
|
||||
@ -462,8 +462,8 @@ function! htmlcomplete#CompleteTags(findstart, base)
|
||||
endfor
|
||||
endif
|
||||
else
|
||||
if has_key(g:html_omni, tag) && has_key(g:html_omni[tag][1], attrname)
|
||||
let values = g:html_omni[tag][1][attrname]
|
||||
if has_key(b:html_omni, tag) && has_key(b:html_omni[tag][1], attrname)
|
||||
let values = b:html_omni[tag][1][attrname]
|
||||
else
|
||||
return []
|
||||
endif
|
||||
@ -503,13 +503,13 @@ function! htmlcomplete#CompleteTags(findstart, base)
|
||||
let sbase = matchstr(context, '.*\ze\s.*')
|
||||
|
||||
" Load data {{{
|
||||
if !exists("g:html_omni_gen")
|
||||
if !exists("b:html_omni_gen")
|
||||
call htmlcomplete#LoadData()
|
||||
endif
|
||||
" }}}
|
||||
|
||||
if has_key(g:html_omni, tag)
|
||||
let attrs = keys(g:html_omni[tag][1])
|
||||
if has_key(b:html_omni, tag)
|
||||
let attrs = keys(b:html_omni[tag][1])
|
||||
else
|
||||
return []
|
||||
endif
|
||||
@ -522,13 +522,13 @@ function! htmlcomplete#CompleteTags(findstart, base)
|
||||
endif
|
||||
endfor
|
||||
let menu = res + res2
|
||||
if has_key(g:html_omni, 'vimxmlattrinfo')
|
||||
if has_key(b:html_omni, 'vimxmlattrinfo')
|
||||
let final_menu = []
|
||||
for i in range(len(menu))
|
||||
let item = menu[i]
|
||||
if has_key(g:html_omni['vimxmlattrinfo'], item)
|
||||
let m_menu = g:html_omni['vimxmlattrinfo'][item][0]
|
||||
let m_info = g:html_omni['vimxmlattrinfo'][item][1]
|
||||
if has_key(b:html_omni['vimxmlattrinfo'], item)
|
||||
let m_menu = b:html_omni['vimxmlattrinfo'][item][0]
|
||||
let m_info = b:html_omni['vimxmlattrinfo'][item][1]
|
||||
if m_menu !~ 'Bool'
|
||||
let item .= '="'
|
||||
endif
|
||||
@ -558,7 +558,7 @@ function! htmlcomplete#CompleteTags(findstart, base)
|
||||
endif
|
||||
" }}}
|
||||
" Load data {{{
|
||||
if !exists("g:html_omni")
|
||||
if !exists("b:html_omni")
|
||||
"runtime! autoload/xml/xhtml10s.vim
|
||||
call htmlcomplete#LoadData()
|
||||
endif
|
||||
@ -568,16 +568,16 @@ function! htmlcomplete#CompleteTags(findstart, base)
|
||||
let opentag = tolower(xmlcomplete#GetLastOpenTag("b:unaryTagsStack"))
|
||||
" MM: TODO: GLOT works always the same but with some weird situation it
|
||||
" behaves as intended in HTML but screws in PHP
|
||||
if opentag == '' || &ft == 'php' && !has_key(g:html_omni, opentag)
|
||||
if opentag == '' || &ft == 'php' && !has_key(b:html_omni, opentag)
|
||||
" Hack for sometimes failing GetLastOpenTag.
|
||||
" As far as I tested fail isn't GLOT fault but problem
|
||||
" of invalid document - not properly closed tags and other mish-mash.
|
||||
" Also when document is empty. Return list of *all* tags.
|
||||
let tags = keys(g:html_omni)
|
||||
let tags = keys(b:html_omni)
|
||||
call filter(tags, 'v:val !~ "^vimxml"')
|
||||
else
|
||||
if has_key(g:html_omni, opentag)
|
||||
let tags = g:html_omni[opentag][0]
|
||||
if has_key(b:html_omni, opentag)
|
||||
let tags = b:html_omni[opentag][0]
|
||||
else
|
||||
return []
|
||||
endif
|
||||
@ -596,17 +596,20 @@ function! htmlcomplete#CompleteTags(findstart, base)
|
||||
endif
|
||||
endfor
|
||||
let menu = res + res2
|
||||
if has_key(g:html_omni, 'vimxmltaginfo')
|
||||
if has_key(b:html_omni, 'vimxmltaginfo')
|
||||
let final_menu = []
|
||||
for i in range(len(menu))
|
||||
let item = menu[i]
|
||||
if has_key(g:html_omni['vimxmltaginfo'], item)
|
||||
let m_menu = g:html_omni['vimxmltaginfo'][item][0]
|
||||
let m_info = g:html_omni['vimxmltaginfo'][item][1]
|
||||
if has_key(b:html_omni['vimxmltaginfo'], item)
|
||||
let m_menu = b:html_omni['vimxmltaginfo'][item][0]
|
||||
let m_info = b:html_omni['vimxmltaginfo'][item][1]
|
||||
else
|
||||
let m_menu = ''
|
||||
let m_info = ''
|
||||
endif
|
||||
if &ft == 'html' && exists("uppercase_tag") && uppercase_tag == 1
|
||||
let item = toupper(item)
|
||||
endif
|
||||
let final_menu += [{'word':item, 'menu':m_menu, 'info':m_info}]
|
||||
endfor
|
||||
else
|
||||
@ -619,25 +622,39 @@ function! htmlcomplete#CompleteTags(findstart, base)
|
||||
endfunction
|
||||
|
||||
function! htmlcomplete#LoadData() " {{{
|
||||
if !exists("g:html_omni_flavor")
|
||||
let g:html_omni_flavor = 'xhtml10s'
|
||||
if !exists("b:html_omni_flavor")
|
||||
if &ft == 'html'
|
||||
let b:html_omni_flavor = 'html401t'
|
||||
else
|
||||
let b:html_omni_flavor = 'xhtml10s'
|
||||
endif
|
||||
endif
|
||||
exe 'runtime! autoload/xml/'.g:html_omni_flavor.'.vim'
|
||||
" This one is necessary because we don't know if
|
||||
" g:html_omni_flavor file exists and was sourced
|
||||
" With that if we still have bloated memory but create new buffer
|
||||
" variables only by linking to existing g:variable, not sourcing whole
|
||||
" file.
|
||||
if exists('g:xmldata_'.b:html_omni_flavor)
|
||||
exe 'let b:html_omni = g:xmldata_'.b:html_omni_flavor
|
||||
else
|
||||
exe 'runtime! autoload/xml/'.b:html_omni_flavor.'.vim'
|
||||
exe 'let b:html_omni = g:xmldata_'.b:html_omni_flavor
|
||||
endif
|
||||
" This repetition is necessary because we don't know if
|
||||
" b:html_omni_flavor file exists and was sourced
|
||||
" Proper checking for files would require iterating through 'rtp'
|
||||
" and could introduce OS dependent mess.
|
||||
if !exists("g:xmldata_".g:html_omni_flavor)
|
||||
let g:html_omni_flavor = 'xhtml10s'
|
||||
runtime! autoload/xml/xhtml10s.vim
|
||||
if !exists("g:xmldata_".b:html_omni_flavor)
|
||||
if &ft == 'html'
|
||||
let b:html_omni_flavor = 'html401t'
|
||||
else
|
||||
let b:html_omni_flavor = 'xhtml10s'
|
||||
endif
|
||||
endif
|
||||
if exists('g:xmldata_'.b:html_omni_flavor)
|
||||
exe 'let b:html_omni = g:xmldata_'.b:html_omni_flavor
|
||||
else
|
||||
exe 'runtime! autoload/xml/'.b:html_omni_flavor.'.vim'
|
||||
exe 'let b:html_omni = g:xmldata_'.b:html_omni_flavor
|
||||
endif
|
||||
|
||||
exe 'let g:html_omni = g:xmldata_'.g:html_omni_flavor
|
||||
|
||||
" Free some memory
|
||||
exe 'unlet! g:xmldata_'.g:html_omni_flavor
|
||||
|
||||
"call htmlcomplete#LoadData()
|
||||
endfunction
|
||||
" }}}
|
||||
" vim:set foldmethod=marker:
|
||||
|
@ -1,20 +1,16 @@
|
||||
"pythoncomplete.vim - Omni Completion for python
|
||||
" Maintainer: Aaron Griffin
|
||||
" Version: 0.3
|
||||
" Last Updated: 23 January 2006
|
||||
" Maintainer: Aaron Griffin <aaronmgriffin@gmail.com>
|
||||
" Version: 0.5
|
||||
" Last Updated: 19 April 2006
|
||||
"
|
||||
" v0.3 Changes:
|
||||
" added top level def parsing
|
||||
" for safety, call returns are not evaluated
|
||||
" handful of parsing changes
|
||||
" trailing ( and . characters
|
||||
" argument completion on open parens
|
||||
" stop parsing at current line - ++performance, local var resolution
|
||||
" Yeah, I skipped a version number - 0.4 was never public.
|
||||
" It was a bugfix version on top of 0.3. This is a complete
|
||||
" rewrite.
|
||||
"
|
||||
" TODO
|
||||
" RExec subclass
|
||||
" Code cleanup + make class
|
||||
" use internal dict, not globals()
|
||||
" TODO:
|
||||
" User defined docstrings aren't handled right...
|
||||
" 'info' item output can use some formatting work
|
||||
" Add an "unsafe eval" mode, to allow for return type evaluation
|
||||
|
||||
if !has('python')
|
||||
echo "Error: Required vim compiled with +python"
|
||||
@ -23,12 +19,12 @@ endif
|
||||
|
||||
function! pythoncomplete#Complete(findstart, base)
|
||||
"findstart = 1 when we need to get the text length
|
||||
if a:findstart
|
||||
if a:findstart == 1
|
||||
let line = getline('.')
|
||||
let idx = col('.')
|
||||
while idx > 0
|
||||
let idx -= 1
|
||||
let c = line[idx-1]
|
||||
let c = line[idx]
|
||||
if c =~ '\w'
|
||||
continue
|
||||
elseif ! c =~ '\.'
|
||||
@ -42,310 +38,530 @@ function! pythoncomplete#Complete(findstart, base)
|
||||
return idx
|
||||
"findstart = 0 when we need to return the list of completions
|
||||
else
|
||||
execute "python get_completions('" . a:base . "')"
|
||||
"vim no longer moves the cursor upon completion... fix that
|
||||
let line = getline('.')
|
||||
let idx = col('.')
|
||||
let cword = ''
|
||||
while idx > 0
|
||||
let idx -= 1
|
||||
let c = line[idx]
|
||||
if c =~ '\w' || c =~ '\.'
|
||||
let cword = c . cword
|
||||
continue
|
||||
elseif strlen(cword) > 0 || idx == 0
|
||||
break
|
||||
endif
|
||||
endwhile
|
||||
execute "python vimcomplete('" . cword . "', '" . a:base . "')"
|
||||
return g:pythoncomplete_completions
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! s:DefPython()
|
||||
python << PYTHONEOF
|
||||
import vim, sys, types
|
||||
import __builtin__
|
||||
import tokenize, keyword, cStringIO
|
||||
import sys, tokenize, cStringIO, types
|
||||
from token import NAME, DEDENT, NEWLINE, STRING
|
||||
|
||||
LOCALDEFS = \
|
||||
['LOCALDEFS', 'clean_up','eval_source_code', \
|
||||
'get_completions', '__builtin__', '__builtins__', \
|
||||
'dbg', '__name__', 'vim', 'sys', 'parse_to_end', \
|
||||
'parse_statement', 'tokenize', 'keyword', 'cStringIO', \
|
||||
'debug_level', 'safe_eval', '_ctor', 'get_arguments', \
|
||||
'strip_calls', 'types', 'parse_block']
|
||||
debugstmts=[]
|
||||
def dbg(s): debugstmts.append(s)
|
||||
def showdbg():
|
||||
for d in debugstmts: print "DBG: %s " % d
|
||||
|
||||
def dbg(level,msg):
|
||||
debug_level = 1
|
||||
def vimcomplete(context,match):
|
||||
global debugstmts
|
||||
debugstmts = []
|
||||
try:
|
||||
debug_level = vim.eval("g:pythoncomplete_debug_level")
|
||||
except:
|
||||
pass
|
||||
if level <= debug_level: print(msg)
|
||||
import vim
|
||||
def complsort(x,y):
|
||||
return x['abbr'] > y['abbr']
|
||||
cmpl = Completer()
|
||||
cmpl.evalsource('\n'.join(vim.current.buffer),vim.eval("line('.')"))
|
||||
all = cmpl.get_completions(context,match)
|
||||
all.sort(complsort)
|
||||
dictstr = '['
|
||||
# have to do this for double quoting
|
||||
for cmpl in all:
|
||||
dictstr += '{'
|
||||
for x in cmpl: dictstr += '"%s":"%s",' % (x,cmpl[x])
|
||||
dictstr += '"icase":0},'
|
||||
if dictstr[-1] == ',': dictstr = dictstr[:-1]
|
||||
dictstr += ']'
|
||||
dbg("dict: %s" % dictstr)
|
||||
vim.command("silent let g:pythoncomplete_completions = %s" % dictstr)
|
||||
#dbg("Completion dict:\n%s" % all)
|
||||
except vim.error:
|
||||
dbg("VIM Error: %s" % vim.error)
|
||||
|
||||
def strip_calls(stmt):
|
||||
parsed=''
|
||||
level = 0
|
||||
for c in stmt:
|
||||
if c in ['[','(']:
|
||||
level += 1
|
||||
elif c in [')',']']:
|
||||
level -= 1
|
||||
elif level == 0:
|
||||
parsed += c
|
||||
##dbg(10,"stripped: %s" % parsed)
|
||||
return parsed
|
||||
class Completer(object):
|
||||
def __init__(self):
|
||||
self.compldict = {}
|
||||
self.parser = PyParser()
|
||||
|
||||
def get_completions(base):
|
||||
stmt = vim.eval('expand("<cWORD>")')
|
||||
#dbg(1,"statement: %s - %s" % (stmt, base))
|
||||
stmt = stmt+base
|
||||
eval_source_code()
|
||||
def evalsource(self,text,line=0):
|
||||
sc = self.parser.parse(text,line)
|
||||
src = sc.get_code()
|
||||
dbg("source: %s" % src)
|
||||
try: exec(src) in self.compldict
|
||||
except: dbg("parser: %s, %s" % (sys.exc_info()[0],sys.exc_info()[1]))
|
||||
for l in sc.locals:
|
||||
try: exec(l) in self.compldict
|
||||
except: dbg("locals: %s, %s [%s]" % (sys.exc_info()[0],sys.exc_info()[1],l))
|
||||
|
||||
try:
|
||||
ridx = stmt.rfind('.')
|
||||
if stmt[-1] == '(':
|
||||
match = ""
|
||||
stmt = strip_calls(stmt[:len(stmt)-1])
|
||||
all = get_arguments(eval(stmt))
|
||||
elif ridx == -1:
|
||||
match = stmt
|
||||
all = globals() + __builtin__.__dict__
|
||||
else:
|
||||
match = stmt[ridx+1:]
|
||||
stmt = strip_calls(stmt[:ridx])
|
||||
all = eval(stmt).__dict__
|
||||
def _cleanstr(self,doc):
|
||||
return doc.replace('"',' ')\
|
||||
.replace("'",' ')\
|
||||
.replace('\n',' ')\
|
||||
.replace('\r',' ')\
|
||||
.replace('
',' ')
|
||||
|
||||
#dbg(15,"completions for: %s, match=%s" % (stmt,match))
|
||||
completions = []
|
||||
if type(all) == types.DictType:
|
||||
for m in all:
|
||||
if m.find('_') != 0 and m.find(match) == 0 and \
|
||||
m not in LOCALDEFS:
|
||||
#dbg(25,"matched... %s, %s" % (m, m.find(match)))
|
||||
typestr = str(all[m])
|
||||
if "function" in typestr: m += '('
|
||||
elif "method" in typestr: m += '('
|
||||
elif "module" in typestr: m += '.'
|
||||
elif "class" in typestr: m += '('
|
||||
completions.append(m)
|
||||
completions.sort()
|
||||
else:
|
||||
completions.append(all)
|
||||
#dbg(10,"all completions: %s" % completions)
|
||||
vim.command("let g:pythoncomplete_completions = %s" % completions)
|
||||
except:
|
||||
vim.command("let g:pythoncomplete_completions = []")
|
||||
#dbg(1,"exception: %s" % sys.exc_info()[1])
|
||||
clean_up()
|
||||
def get_arguments(self,func_obj):
|
||||
def _ctor(obj):
|
||||
try: return class_ob.__init__.im_func
|
||||
except AttributeError:
|
||||
for base in class_ob.__bases__:
|
||||
rc = _find_constructor(base)
|
||||
if rc is not None: return rc
|
||||
return None
|
||||
|
||||
def get_arguments(func_obj):
|
||||
def _ctor(obj):
|
||||
try:
|
||||
return class_ob.__init__.im_func
|
||||
except AttributeError:
|
||||
for base in class_ob.__bases__:
|
||||
rc = _find_constructor(base)
|
||||
if rc is not None: return rc
|
||||
return None
|
||||
|
||||
arg_offset = 1
|
||||
if type(func_obj) == types.ClassType: func_obj = _ctor(func_obj)
|
||||
elif type(func_obj) == types.MethodType: func_obj = func_obj.im_func
|
||||
else: arg_offset = 0
|
||||
|
||||
#dbg(20,"%s, offset=%s" % (str(func_obj), arg_offset))
|
||||
|
||||
arg_text = ''
|
||||
if type(func_obj) in [types.FunctionType, types.LambdaType]:
|
||||
try:
|
||||
cd = func_obj.func_code
|
||||
real_args = cd.co_varnames[arg_offset:cd.co_argcount]
|
||||
defaults = func_obj.func_defaults or []
|
||||
defaults = list(map(lambda name: "=%s" % name, defaults))
|
||||
defaults = [""] * (len(real_args)-len(defaults)) + defaults
|
||||
items = map(lambda a,d: a+d, real_args, defaults)
|
||||
if func_obj.func_code.co_flags & 0x4:
|
||||
items.append("...")
|
||||
if func_obj.func_code.co_flags & 0x8:
|
||||
items.append("***")
|
||||
arg_text = ", ".join(items) + ')'
|
||||
|
||||
except:
|
||||
#dbg(1,"exception: %s" % sys.exc_info()[1])
|
||||
pass
|
||||
if len(arg_text) == 0:
|
||||
# The doc string sometimes contains the function signature
|
||||
# this works for alot of C modules that are part of the
|
||||
# standard library
|
||||
doc = getattr(func_obj, '__doc__', '')
|
||||
if doc:
|
||||
doc = doc.lstrip()
|
||||
pos = doc.find('\n')
|
||||
if pos > 0:
|
||||
sigline = doc[:pos]
|
||||
lidx = sigline.find('(')
|
||||
ridx = sigline.find(')')
|
||||
retidx = sigline.find('->')
|
||||
ret = sigline[retidx+2:].strip()
|
||||
if lidx > 0 and ridx > 0:
|
||||
arg_text = sigline[lidx+1:ridx] + ')'
|
||||
if len(ret) > 0: arg_text += ' #returns %s' % ret
|
||||
#dbg(15,"argument completion: %s" % arg_text)
|
||||
return arg_text
|
||||
|
||||
def parse_to_end(gen):
|
||||
stmt=''
|
||||
level = 0
|
||||
for type, str, begin, end, line in gen:
|
||||
if line == vim.eval('getline(\'.\')'): break
|
||||
elif str == '\\': continue
|
||||
elif str == ';':
|
||||
break
|
||||
elif type == tokenize.NEWLINE and level == 0:
|
||||
break
|
||||
elif str in ['[','(']:
|
||||
level += 1
|
||||
elif str in [')',']']:
|
||||
level -= 1
|
||||
elif level == 0:
|
||||
stmt += str
|
||||
#dbg(10,"current statement: %s" % stmt)
|
||||
return stmt
|
||||
|
||||
def parse_block(gen):
|
||||
lines = []
|
||||
level = 0
|
||||
for type, str, begin, end, line in gen:
|
||||
if line.replace('\n','') == vim.eval('getline(\'.\')'): break
|
||||
elif type == tokenize.INDENT:
|
||||
level += 1
|
||||
elif type == tokenize.DEDENT:
|
||||
level -= 1
|
||||
if level == 0: break;
|
||||
else:
|
||||
stmt = parse_statement(gen,str)
|
||||
if len(stmt) > 0: lines.append(stmt)
|
||||
return lines
|
||||
|
||||
def parse_statement(gen,curstr=''):
|
||||
var = curstr
|
||||
type, str, begin, end, line = gen.next()
|
||||
if str == '=':
|
||||
type, str, begin, end, line = gen.next()
|
||||
if type == tokenize.NEWLINE:
|
||||
return ''
|
||||
elif type == tokenize.STRING or str == 'str':
|
||||
return '%s = str' % var
|
||||
elif str == '[' or str == 'list':
|
||||
return '%s= list' % var
|
||||
elif str == '{' or str == 'dict':
|
||||
return '%s = dict' % var
|
||||
elif type == tokenize.NUMBER:
|
||||
return '%s = 0' % var
|
||||
elif str == 'Set':
|
||||
return '%s = Set' % var
|
||||
elif str == 'open' or str == 'file':
|
||||
return '%s = file' % var
|
||||
else:
|
||||
inst = str + parse_to_end(gen)
|
||||
if len(inst) > 0:
|
||||
#dbg(5,"found [%s = %s]" % (var, inst))
|
||||
return '%s = %s' % (var, inst)
|
||||
return ''
|
||||
|
||||
def eval_source_code():
|
||||
LINE=vim.eval('getline(\'.\')')
|
||||
s = cStringIO.StringIO('\n'.join(vim.current.buffer[:]) + '\n')
|
||||
g = tokenize.generate_tokens(s.readline)
|
||||
|
||||
stmts = []
|
||||
lineNo = 0
|
||||
try:
|
||||
for type, str, begin, end, line in g:
|
||||
if line.replace('\n','') == vim.eval('getline(\'.\')'): break
|
||||
elif begin[0] == lineNo: continue
|
||||
#junk
|
||||
elif type == tokenize.INDENT or \
|
||||
type == tokenize.DEDENT or \
|
||||
type == tokenize.ERRORTOKEN or \
|
||||
type == tokenize.ENDMARKER or \
|
||||
type == tokenize.NEWLINE or \
|
||||
type == tokenize.COMMENT:
|
||||
continue
|
||||
#import statement
|
||||
elif str == 'import':
|
||||
import_stmt=parse_to_end(g)
|
||||
if len(import_stmt) > 0:
|
||||
#dbg(5,"found [import %s]" % import_stmt)
|
||||
stmts.append("import %s" % import_stmt)
|
||||
#import from statement
|
||||
elif str == 'from':
|
||||
type, str, begin, end, line = g.next()
|
||||
mod = str
|
||||
|
||||
type, str, begin, end, line = g.next()
|
||||
if str != "import": break
|
||||
from_stmt=parse_to_end(g)
|
||||
if len(from_stmt) > 0:
|
||||
#dbg(5,"found [from %s import %s]" % (mod, from_stmt))
|
||||
stmts.append("from %s import %s" % (mod, from_stmt))
|
||||
#def statement
|
||||
elif str == 'def':
|
||||
funcstr = ''
|
||||
for type, str, begin, end, line in g:
|
||||
if line.replace('\n','') == vim.eval('getline(\'.\')'): break
|
||||
elif str == ':':
|
||||
stmts += parse_block(g)
|
||||
break
|
||||
funcstr += str
|
||||
if len(funcstr) > 0:
|
||||
#dbg(5,"found [def %s]" % funcstr)
|
||||
stmts.append("def %s:\n pass" % funcstr)
|
||||
#class declaration
|
||||
elif str == 'class':
|
||||
type, str, begin, end, line = g.next()
|
||||
classname = str
|
||||
#dbg(5,"found [class %s]" % classname)
|
||||
|
||||
level = 0
|
||||
members = []
|
||||
for type, str, begin, end, line in g:
|
||||
if line.replace('\n','') == vim.eval('getline(\'.\')'): break
|
||||
elif type == tokenize.INDENT:
|
||||
level += 1
|
||||
elif type == tokenize.DEDENT:
|
||||
level -= 1
|
||||
if level == 0: break;
|
||||
elif str == 'def':
|
||||
memberstr = ''
|
||||
for type, str, begin, end, line in g:
|
||||
if line.replace('\n','') == vim.eval('getline(\'.\')'): break
|
||||
elif str == ':':
|
||||
stmts += parse_block(g)
|
||||
break
|
||||
memberstr += str
|
||||
#dbg(5," member [%s]" % memberstr)
|
||||
members.append(memberstr)
|
||||
classstr = 'class %s:' % classname
|
||||
for m in members:
|
||||
classstr += ("\n def %s:\n pass" % m)
|
||||
stmts.append("%s\n" % classstr)
|
||||
elif keyword.iskeyword(str) or str in globals():
|
||||
#dbg(5,"keyword = %s" % str)
|
||||
lineNo = begin[0]
|
||||
else:
|
||||
assign = parse_statement(g,str)
|
||||
if len(assign) > 0: stmts.append(assign)
|
||||
|
||||
for s in stmts:
|
||||
arg_offset = 1
|
||||
if type(func_obj) == types.ClassType: func_obj = _ctor(func_obj)
|
||||
elif type(func_obj) == types.MethodType: func_obj = func_obj.im_func
|
||||
else: arg_offset = 0
|
||||
|
||||
arg_text = ')'
|
||||
if type(func_obj) in [types.FunctionType, types.LambdaType]:
|
||||
try:
|
||||
#dbg(15,"evaluating: %s\n" % s)
|
||||
exec(s) in globals()
|
||||
cd = func_obj.func_code
|
||||
real_args = cd.co_varnames[arg_offset:cd.co_argcount]
|
||||
defaults = func_obj.func_defaults or []
|
||||
defaults = [map(lambda name: "=%s" % name, defaults)]
|
||||
defaults = [""] * (len(real_args)-len(defaults)) + defaults
|
||||
items = map(lambda a,d: a+d, real_args, defaults)
|
||||
if func_obj.func_code.co_flags & 0x4:
|
||||
items.append("...")
|
||||
if func_obj.func_code.co_flags & 0x8:
|
||||
items.append("***")
|
||||
arg_text = ", ".join(items) + ')'
|
||||
|
||||
except:
|
||||
#dbg(1,"exception: %s" % sys.exc_info()[1])
|
||||
dbg("completion: %s: %s" % (sys.exc_info()[0],sys.exc_info()[1]))
|
||||
pass
|
||||
except:
|
||||
#dbg(1,"exception: %s" % sys.exc_info()[1])
|
||||
pass
|
||||
if len(arg_text) == 0:
|
||||
# The doc string sometimes contains the function signature
|
||||
# this works for alot of C modules that are part of the
|
||||
# standard library
|
||||
doc = func_obj.__doc__
|
||||
if doc:
|
||||
doc = doc.lstrip()
|
||||
pos = doc.find('\n')
|
||||
if pos > 0:
|
||||
sigline = doc[:pos]
|
||||
lidx = sigline.find('(')
|
||||
ridx = sigline.find(')')
|
||||
if lidx > 0 and ridx > 0:
|
||||
arg_text = sigline[lidx+1:ridx] + ')'
|
||||
return arg_text
|
||||
|
||||
def clean_up():
|
||||
for o in globals().keys():
|
||||
if o not in LOCALDEFS:
|
||||
try:
|
||||
exec('del %s' % o) in globals()
|
||||
except: pass
|
||||
def get_completions(self,context,match):
|
||||
dbg("get_completions('%s','%s')" % (context,match))
|
||||
stmt = ''
|
||||
if context: stmt += str(context)
|
||||
if match: stmt += str(match)
|
||||
try:
|
||||
result = None
|
||||
all = {}
|
||||
ridx = stmt.rfind('.')
|
||||
if len(stmt) > 0 and stmt[-1] == '(':
|
||||
#TODO
|
||||
result = eval(_sanitize(stmt[:-1]), self.compldict)
|
||||
doc = result.__doc__
|
||||
if doc == None: doc = ''
|
||||
args = self.get_arguments(res)
|
||||
return [{'word':self._cleanstr(args),'info':self._cleanstr(doc),'kind':'p'}]
|
||||
elif ridx == -1:
|
||||
match = stmt
|
||||
all = self.compldict
|
||||
else:
|
||||
match = stmt[ridx+1:]
|
||||
stmt = _sanitize(stmt[:ridx])
|
||||
result = eval(stmt, self.compldict)
|
||||
all = dir(result)
|
||||
|
||||
dbg("completing: stmt:%s" % stmt)
|
||||
completions = []
|
||||
|
||||
try: maindoc = result.__doc__
|
||||
except: maindoc = ' '
|
||||
if maindoc == None: maindoc = ' '
|
||||
for m in all:
|
||||
if m == "_PyCmplNoType": continue #this is internal
|
||||
try:
|
||||
dbg('possible completion: %s' % m)
|
||||
if m.find(match) == 0:
|
||||
if result == None: inst = all[m]
|
||||
else: inst = getattr(result,m)
|
||||
try: doc = inst.__doc__
|
||||
except: doc = maindoc
|
||||
typestr = str(inst)
|
||||
if doc == None or doc == '': doc = maindoc
|
||||
|
||||
wrd = m[len(match):]
|
||||
c = {'word':wrd, 'abbr':m, 'info':self._cleanstr(doc),'kind':'m'}
|
||||
if "function" in typestr:
|
||||
c['word'] += '('
|
||||
c['abbr'] += '(' + self._cleanstr(self.get_arguments(inst))
|
||||
c['kind'] = 'f'
|
||||
elif "method" in typestr:
|
||||
c['word'] += '('
|
||||
c['abbr'] += '(' + self._cleanstr(self.get_arguments(inst))
|
||||
c['kind'] = 'f'
|
||||
elif "module" in typestr:
|
||||
c['word'] += '.'
|
||||
c['kind'] = 'm'
|
||||
elif "class" in typestr:
|
||||
c['word'] += '('
|
||||
c['abbr'] += '('
|
||||
c['kind']='c'
|
||||
completions.append(c)
|
||||
except:
|
||||
i = sys.exc_info()
|
||||
dbg("inner completion: %s,%s [stmt='%s']" % (i[0],i[1],stmt))
|
||||
return completions
|
||||
except:
|
||||
i = sys.exc_info()
|
||||
dbg("completion: %s,%s [stmt='%s']" % (i[0],i[1],stmt))
|
||||
return []
|
||||
|
||||
class Scope(object):
|
||||
def __init__(self,name,indent):
|
||||
self.subscopes = []
|
||||
self.docstr = ''
|
||||
self.locals = []
|
||||
self.parent = None
|
||||
self.name = name
|
||||
self.indent = indent
|
||||
|
||||
def add(self,sub):
|
||||
#print 'push scope: [%s@%s]' % (sub.name,sub.indent)
|
||||
sub.parent = self
|
||||
self.subscopes.append(sub)
|
||||
return sub
|
||||
|
||||
def doc(self,str):
|
||||
""" Clean up a docstring """
|
||||
d = str.replace('\n',' ')
|
||||
d = d.replace('\t',' ')
|
||||
while d.find(' ') > -1: d = d.replace(' ',' ')
|
||||
while d[0] in '"\'\t ': d = d[1:]
|
||||
while d[-1] in '"\'\t ': d = d[:-1]
|
||||
self.docstr = d
|
||||
|
||||
def local(self,loc):
|
||||
if not self._hasvaralready(loc):
|
||||
self.locals.append(loc)
|
||||
|
||||
def copy_decl(self,indent=0):
|
||||
""" Copy a scope's declaration only, at the specified indent level - not local variables """
|
||||
return Scope(self.name,indent)
|
||||
|
||||
def _hasvaralready(self,test):
|
||||
"Convienance function... keep out duplicates"
|
||||
if test.find('=') > -1:
|
||||
var = test.split('=')[0].strip()
|
||||
for l in self.locals:
|
||||
if l.find('=') > -1 and var == l.split('=')[0].strip():
|
||||
return True
|
||||
return False
|
||||
|
||||
def get_code(self):
|
||||
# we need to start with this, to fix up broken completions
|
||||
# hopefully this name is unique enough...
|
||||
str = '"""'+self.docstr+'"""\n'
|
||||
str += 'class _PyCmplNoType:\n def __getattr__(self,name):\n return None\n'
|
||||
for sub in self.subscopes:
|
||||
str += sub.get_code()
|
||||
#str += '\n'.join(self.locals)+'\n'
|
||||
|
||||
return str
|
||||
|
||||
def pop(self,indent):
|
||||
#print 'pop scope: [%s] to [%s]' % (self.indent,indent)
|
||||
outer = self
|
||||
while outer.parent != None and outer.indent >= indent:
|
||||
outer = outer.parent
|
||||
return outer
|
||||
|
||||
def currentindent(self):
|
||||
#print 'parse current indent: %s' % self.indent
|
||||
return ' '*self.indent
|
||||
|
||||
def childindent(self):
|
||||
#print 'parse child indent: [%s]' % (self.indent+1)
|
||||
return ' '*(self.indent+1)
|
||||
|
||||
class Class(Scope):
|
||||
def __init__(self, name, supers, indent):
|
||||
Scope.__init__(self,name,indent)
|
||||
self.supers = supers
|
||||
def copy_decl(self,indent=0):
|
||||
c = Class(self.name,self.supers,indent)
|
||||
for s in self.subscopes:
|
||||
c.add(s.copy_decl(indent+1))
|
||||
return c
|
||||
def get_code(self):
|
||||
str = '%sclass %s' % (self.currentindent(),self.name)
|
||||
if len(self.supers) > 0: str += '(%s)' % ','.join(self.supers)
|
||||
str += ':\n'
|
||||
if len(self.docstr) > 0: str += self.childindent()+'"""'+self.docstr+'"""\n'
|
||||
if len(self.subscopes) > 0:
|
||||
for s in self.subscopes: str += s.get_code()
|
||||
else:
|
||||
str += '%spass\n' % self.childindent()
|
||||
return str
|
||||
|
||||
|
||||
class Function(Scope):
|
||||
def __init__(self, name, params, indent):
|
||||
Scope.__init__(self,name,indent)
|
||||
self.params = params
|
||||
def copy_decl(self,indent=0):
|
||||
return Function(self.name,self.params,indent)
|
||||
def get_code(self):
|
||||
str = "%sdef %s(%s):\n" % \
|
||||
(self.currentindent(),self.name,','.join(self.params))
|
||||
if len(self.docstr) > 0: str += self.childindent()+'"""'+self.docstr+'"""\n'
|
||||
str += "%spass\n" % self.childindent()
|
||||
return str
|
||||
|
||||
class PyParser:
|
||||
def __init__(self):
|
||||
self.top = Scope('global',0)
|
||||
self.scope = self.top
|
||||
|
||||
def _parsedotname(self,pre=None):
|
||||
#returns (dottedname, nexttoken)
|
||||
name = []
|
||||
if pre == None:
|
||||
tokentype, token, indent = self.next()
|
||||
if tokentype != NAME and token != '*':
|
||||
return ('', token)
|
||||
else: token = pre
|
||||
name.append(token)
|
||||
while True:
|
||||
tokentype, token, indent = self.next()
|
||||
if token != '.': break
|
||||
tokentype, token, indent = self.next()
|
||||
if tokentype != NAME: break
|
||||
name.append(token)
|
||||
return (".".join(name), token)
|
||||
|
||||
def _parseimportlist(self):
|
||||
imports = []
|
||||
while True:
|
||||
name, token = self._parsedotname()
|
||||
if not name: break
|
||||
name2 = ''
|
||||
if token == 'as': name2, token = self._parsedotname()
|
||||
imports.append((name, name2))
|
||||
while token != "," and "\n" not in token:
|
||||
tokentype, token, indent = self.next()
|
||||
if token != ",": break
|
||||
return imports
|
||||
|
||||
def _parenparse(self):
|
||||
name = ''
|
||||
names = []
|
||||
level = 1
|
||||
while True:
|
||||
tokentype, token, indent = self.next()
|
||||
if token in (')', ',') and level == 1:
|
||||
names.append(name)
|
||||
name = ''
|
||||
if token == '(':
|
||||
level += 1
|
||||
elif token == ')':
|
||||
level -= 1
|
||||
if level == 0: break
|
||||
elif token == ',' and level == 1:
|
||||
pass
|
||||
else:
|
||||
name += str(token)
|
||||
return names
|
||||
|
||||
def _parsefunction(self,indent):
|
||||
self.scope=self.scope.pop(indent)
|
||||
tokentype, fname, ind = self.next()
|
||||
if tokentype != NAME: return None
|
||||
|
||||
tokentype, open, ind = self.next()
|
||||
if open != '(': return None
|
||||
params=self._parenparse()
|
||||
|
||||
tokentype, colon, ind = self.next()
|
||||
if colon != ':': return None
|
||||
|
||||
return Function(fname,params,indent)
|
||||
|
||||
def _parseclass(self,indent):
|
||||
self.scope=self.scope.pop(indent)
|
||||
tokentype, cname, ind = self.next()
|
||||
if tokentype != NAME: return None
|
||||
|
||||
super = []
|
||||
tokentype, next, ind = self.next()
|
||||
if next == '(':
|
||||
super=self._parenparse()
|
||||
elif next != ':': return None
|
||||
|
||||
return Class(cname,super,indent)
|
||||
|
||||
def _parseassignment(self):
|
||||
assign=''
|
||||
tokentype, token, indent = self.next()
|
||||
if tokentype == tokenize.STRING or token == 'str':
|
||||
return '""'
|
||||
elif token == '[' or token == 'list':
|
||||
return '[]'
|
||||
elif token == '{' or token == 'dict':
|
||||
return '{}'
|
||||
elif tokentype == tokenize.NUMBER:
|
||||
return '0'
|
||||
elif token == 'open' or token == 'file':
|
||||
return 'file'
|
||||
elif token == 'None':
|
||||
return '_PyCmplNoType()'
|
||||
elif token == 'type':
|
||||
return 'type(_PyCmplNoType)' #only for method resolution
|
||||
else:
|
||||
assign += token
|
||||
level = 0
|
||||
while True:
|
||||
tokentype, token, indent = self.next()
|
||||
if token in ('(','{','['):
|
||||
level += 1
|
||||
elif token in (']','}',')'):
|
||||
level -= 1
|
||||
if level == 0: break
|
||||
elif level == 0:
|
||||
if token in (';','\n'): break
|
||||
assign += token
|
||||
return "%s" % assign
|
||||
|
||||
def next(self):
|
||||
type, token, (lineno, indent), end, self.parserline = self.gen.next()
|
||||
if lineno == self.curline:
|
||||
#print 'line found [%s] scope=%s' % (line.replace('\n',''),self.scope.name)
|
||||
self.currentscope = self.scope
|
||||
return (type, token, indent)
|
||||
|
||||
def _adjustvisibility(self):
|
||||
newscope = Scope('result',0)
|
||||
scp = self.currentscope
|
||||
while scp != None:
|
||||
if type(scp) == Function:
|
||||
slice = 0
|
||||
#Handle 'self' params
|
||||
if scp.parent != None and type(scp.parent) == Class:
|
||||
slice = 1
|
||||
p = scp.params[0]
|
||||
i = p.find('=')
|
||||
if i != -1: p = p[:i]
|
||||
newscope.local('%s = %s' % (scp.params[0],scp.parent.name))
|
||||
for p in scp.params[slice:]:
|
||||
i = p.find('=')
|
||||
if i == -1:
|
||||
newscope.local('%s = _PyCmplNoType()' % p)
|
||||
else:
|
||||
newscope.local('%s = %s' % (p[:i],_sanitize(p[i+1])))
|
||||
|
||||
for s in scp.subscopes:
|
||||
ns = s.copy_decl(0)
|
||||
newscope.add(ns)
|
||||
for l in scp.locals: newscope.local(l)
|
||||
scp = scp.parent
|
||||
|
||||
self.currentscope = newscope
|
||||
return self.currentscope
|
||||
|
||||
#p.parse(vim.current.buffer[:],vim.eval("line('.')"))
|
||||
def parse(self,text,curline=0):
|
||||
self.curline = int(curline)
|
||||
buf = cStringIO.StringIO(''.join(text) + '\n')
|
||||
self.gen = tokenize.generate_tokens(buf.readline)
|
||||
self.currentscope = self.scope
|
||||
|
||||
try:
|
||||
freshscope=True
|
||||
while True:
|
||||
tokentype, token, indent = self.next()
|
||||
#print 'main: token=[%s] indent=[%s]' % (token,indent)
|
||||
|
||||
if tokentype == DEDENT:
|
||||
self.scope = self.scope.pop(indent)
|
||||
elif token == 'def':
|
||||
func = self._parsefunction(indent)
|
||||
if func == None:
|
||||
print "function: syntax error..."
|
||||
continue
|
||||
freshscope = True
|
||||
self.scope = self.scope.add(func)
|
||||
elif token == 'class':
|
||||
cls = self._parseclass(indent)
|
||||
if cls == None:
|
||||
print "class: syntax error..."
|
||||
continue
|
||||
freshscope = True
|
||||
self.scope = self.scope.add(cls)
|
||||
|
||||
elif token == 'import':
|
||||
imports = self._parseimportlist()
|
||||
for mod, alias in imports:
|
||||
loc = "import %s" % mod
|
||||
if len(alias) > 0: loc += " as %s" % alias
|
||||
self.scope.local(loc)
|
||||
freshscope = False
|
||||
elif token == 'from':
|
||||
mod, token = self._parsedotname()
|
||||
if not mod or token != "import":
|
||||
print "from: syntax error..."
|
||||
continue
|
||||
names = self._parseimportlist()
|
||||
for name, alias in names:
|
||||
loc = "from %s import %s" % (mod,name)
|
||||
if len(alias) > 0: loc += " as %s" % alias
|
||||
self.scope.local(loc)
|
||||
freshscope = False
|
||||
elif tokentype == STRING:
|
||||
if freshscope: self.scope.doc(token)
|
||||
elif tokentype == NAME:
|
||||
name,token = self._parsedotname(token)
|
||||
if token == '=':
|
||||
stmt = self._parseassignment()
|
||||
if stmt != None:
|
||||
self.scope.local("%s = %s" % (name,stmt))
|
||||
freshscope = False
|
||||
except StopIteration: #thrown on EOF
|
||||
pass
|
||||
except:
|
||||
dbg("parse error: %s, %s @ %s" %
|
||||
(sys.exc_info()[0], sys.exc_info()[1], self.parserline))
|
||||
return self._adjustvisibility()
|
||||
|
||||
def _sanitize(str):
|
||||
val = ''
|
||||
level = 0
|
||||
for c in str:
|
||||
if c in ('(','{','['):
|
||||
level += 1
|
||||
elif c in (']','}',')'):
|
||||
level -= 1
|
||||
elif level == 0:
|
||||
val += c
|
||||
return val
|
||||
|
||||
sys.path.extend(['.','..'])
|
||||
PYTHONEOF
|
||||
endfunction
|
||||
|
||||
let g:pythoncomplete_debug_level = 0
|
||||
call s:DefPython()
|
||||
" vim: set et ts=4:
|
||||
|
@ -1,6 +1,6 @@
|
||||
" Vim completion script
|
||||
" Language: Ruby
|
||||
" Maintainer: Mark Guzman ( segfault AT hasno DOT info )
|
||||
" Maintainer: Mark Guzman <segfault@hasno.info>
|
||||
" Info: $Id$
|
||||
" URL: http://vim-ruby.rubyforge.org
|
||||
" Anon CVS: See above site
|
||||
@ -11,16 +11,64 @@
|
||||
" ----------------------------------------------------------------------------
|
||||
|
||||
if !has('ruby')
|
||||
echohl ErrorMsg
|
||||
echo "Error: Required vim compiled with +ruby"
|
||||
echohl None
|
||||
finish
|
||||
endif
|
||||
|
||||
if version < 700
|
||||
echohl ErrorMsg
|
||||
echo "Error: Required vim >= 7.0"
|
||||
echohl None
|
||||
finish
|
||||
endif
|
||||
|
||||
func! GetRubyVarType(v)
|
||||
|
||||
function! GetBufferRubyModule(name)
|
||||
let [snum,enum] = GetBufferRubyEntity(a:name, "module")
|
||||
return snum . '..' . enum
|
||||
endfunction
|
||||
|
||||
function! GetBufferRubyClass(name)
|
||||
let [snum,enum] = GetBufferRubyEntity(a:name, "class")
|
||||
return snum . '..' . enum
|
||||
endfunction
|
||||
|
||||
function! GetBufferRubySingletonMethods(name)
|
||||
endfunction
|
||||
|
||||
function! GetBufferRubyEntity( name, type )
|
||||
let stopline = 1
|
||||
let crex = '^\s*' . a:type . '\s*' . a:name . '\s*\(<\s*.*\s*\)\?\n*\(\(\s\|#\).*\n*\)*\n*\s*end$'
|
||||
let [lnum,lcol] = searchpos( crex, 'nbw')
|
||||
if lnum == 0 && lcol == 0
|
||||
return [0,0]
|
||||
endif
|
||||
|
||||
let [enum,ecol] = searchpos( crex, 'nebw')
|
||||
if lnum > enum
|
||||
let realdef = getline( lnum )
|
||||
let crexb = '^' . realdef . '\n*\(\(\s\|#\).*\n*\)*\n*\s*end$'
|
||||
let [enum,ecol] = searchpos( crexb, 'necw' )
|
||||
endif
|
||||
" we found a the class def
|
||||
return [lnum,enum]
|
||||
endfunction
|
||||
|
||||
function! IsInClassDef()
|
||||
let [snum,enum] = GetBufferRubyEntity( '.*', "class" )
|
||||
let ret = 'nil'
|
||||
let pos = line('.')
|
||||
|
||||
if snum < pos && pos < enum
|
||||
let ret = snum . '..' . enum
|
||||
endif
|
||||
|
||||
return ret
|
||||
endfunction
|
||||
|
||||
function! GetRubyVarType(v)
|
||||
let stopline = 1
|
||||
let vtp = ''
|
||||
let pos = getpos('.')
|
||||
@ -32,9 +80,9 @@ func! GetRubyVarType(v)
|
||||
return vtp
|
||||
endif
|
||||
call setpos('.',pos)
|
||||
let [lnum,lcol] = searchpos(''.a:v.'\>\s*[+\-*/]*=\s*\([^ \t]\+.\(now\|new\|open\|get_instance\)\>\|[\[{"'']\)','nb',stopline)
|
||||
let [lnum,lcol] = searchpos(''.a:v.'\>\s*[+\-*/]*=\s*\([^ \t]\+.\(now\|new\|open\|get_instance\)\>\|[\[{"''/]\|%r{\)','nb',stopline)
|
||||
if lnum != 0 && lcol != 0
|
||||
let str = matchstr(getline(lnum),'=\s*\([^ \t]\+.\(now\|new\|open\|get_instance\)\>\|[\[{"'']\)',lcol)
|
||||
let str = matchstr(getline(lnum),'=\s*\([^ \t]\+.\(now\|new\|open\|get_instance\)\>\|[\[{"''/]\|%r{\)',lcol)
|
||||
let str = substitute(str,'^=\s*','','')
|
||||
call setpos('.',pos)
|
||||
if str == '"' || str == ''''
|
||||
@ -43,6 +91,8 @@ func! GetRubyVarType(v)
|
||||
return 'Array'
|
||||
elseif str == '{'
|
||||
return 'Hash'
|
||||
elseif str == '/' || str == '%r{'
|
||||
return 'Regexp'
|
||||
elseif strlen(str) > 4
|
||||
let l = stridx(str,'.')
|
||||
return str[0:l-1]
|
||||
@ -51,7 +101,7 @@ func! GetRubyVarType(v)
|
||||
endif
|
||||
call setpos('.',pos)
|
||||
return ''
|
||||
endf
|
||||
endfunction
|
||||
|
||||
function! rubycomplete#Complete(findstart, base)
|
||||
"findstart = 1 when we need to get the text length
|
||||
@ -74,14 +124,20 @@ function! rubycomplete#Complete(findstart, base)
|
||||
return idx
|
||||
"findstart = 0 when we need to return the list of completions
|
||||
else
|
||||
let g:rubycomplete_completions = []
|
||||
execute "ruby get_completions('" . a:base . "')"
|
||||
return g:rbcomplete_completions
|
||||
return g:rubycomplete_completions
|
||||
endif
|
||||
endfunction
|
||||
|
||||
|
||||
function! s:DefRuby()
|
||||
ruby << RUBYEOF
|
||||
RailsWords = [
|
||||
"has_many", "has_one",
|
||||
"belongs_to",
|
||||
]
|
||||
|
||||
ReservedWords = [
|
||||
"BEGIN", "END",
|
||||
"alias", "and",
|
||||
@ -106,188 +162,290 @@ Operators = [ "%", "&", "*", "**", "+", "-", "/",
|
||||
"<", "<<", "<=", "<=>", "==", "===", "=~", ">", ">=", ">>",
|
||||
"[]", "[]=", "^", ]
|
||||
|
||||
def identify_type(var)
|
||||
@buf = VIM::Buffer.current
|
||||
enum = @buf.line_number
|
||||
snum = (enum-10).abs
|
||||
nums = Range.new( snum, enum )
|
||||
regxs = '/.*(%s)\s*=(.*)/' % var
|
||||
regx = Regexp.new( regxs )
|
||||
nums.each do |x|
|
||||
ln = @buf[x]
|
||||
#print $~ if regx.match( ln )
|
||||
end
|
||||
end
|
||||
|
||||
def load_requires
|
||||
@buf = VIM::Buffer.current
|
||||
enum = @buf.line_number
|
||||
nums = Range.new( 1, enum )
|
||||
nums.each do |x|
|
||||
ln = @buf[x]
|
||||
begin
|
||||
eval( "require %s" % $1 ) if /.*require\s*(.*)$/.match( ln )
|
||||
rescue Exception
|
||||
#ignore?
|
||||
end
|
||||
@buf = VIM::Buffer.current
|
||||
enum = @buf.line_number
|
||||
nums = Range.new( 1, enum )
|
||||
nums.each do |x|
|
||||
ln = @buf[x]
|
||||
begin
|
||||
eval( "require %s" % $1 ) if /.*require\s*(.*)$/.match( ln )
|
||||
rescue Exception
|
||||
#ignore?
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def load_buffer_class(name)
|
||||
classdef = get_buffer_entity(name, 'GetBufferRubyClass("%s")')
|
||||
return if classdef == nil
|
||||
|
||||
pare = /^\s*class\s*(.*)\s*<\s*(.*)\s*\n/.match( classdef )
|
||||
load_buffer_class( $2 ) if pare != nil
|
||||
|
||||
mixre = /.*\n\s*include\s*(.*)\s*\n/.match( classdef )
|
||||
load_buffer_module( $2 ) if mixre != nil
|
||||
|
||||
eval classdef
|
||||
end
|
||||
|
||||
def load_buffer_module(name)
|
||||
classdef = get_buffer_entity(name, 'GetBufferRubyModule("%s")')
|
||||
return if classdef == nil
|
||||
|
||||
eval classdef
|
||||
end
|
||||
|
||||
def get_buffer_entity(name, vimfun)
|
||||
@buf = VIM::Buffer.current
|
||||
nums = eval( VIM::evaluate( vimfun % name ) )
|
||||
return nil if nums == nil
|
||||
return nil if nums.min == nums.max && nums.min == 0
|
||||
|
||||
cur_line = VIM::Buffer.current.line_number
|
||||
classdef = ""
|
||||
nums.each do |x|
|
||||
if x != cur_line
|
||||
ln = @buf[x]
|
||||
classdef += "%s\n" % ln
|
||||
end
|
||||
end
|
||||
|
||||
return classdef
|
||||
end
|
||||
|
||||
def load_rails()
|
||||
allow_rails = VIM::evaluate('g:rubycomplete_rails')
|
||||
return if allow_rails != '1'
|
||||
|
||||
buf_path = VIM::evaluate('expand("%:p")')
|
||||
file_name = VIM::evaluate('expand("%:t")')
|
||||
path = buf_path.gsub( file_name, '' )
|
||||
path.gsub!( /\\/, "/" )
|
||||
pup = [ "../", "../../", "../../../", "../../../../" ]
|
||||
pok = nil
|
||||
|
||||
pup.each do |sup|
|
||||
tpok = "%s%sconfig" % [ path, sup ]
|
||||
if File.exists?( tpok )
|
||||
pok = tpok
|
||||
break
|
||||
end
|
||||
end
|
||||
bootfile = pok + "/boot.rb"
|
||||
require bootfile if pok != nil && File.exists?( bootfile )
|
||||
end
|
||||
|
||||
def get_rails_helpers
|
||||
allow_rails = VIM::evaluate('g:rubycomplete_rails')
|
||||
return [] if allow_rails != '1'
|
||||
return RailsWords
|
||||
end
|
||||
|
||||
def get_completions(base)
|
||||
load_requires
|
||||
input = VIM::evaluate('expand("<cWORD>")')
|
||||
input += base
|
||||
message = nil
|
||||
load_requires
|
||||
load_rails
|
||||
|
||||
input = VIM::evaluate('expand("<cWORD>")')
|
||||
input += base
|
||||
input.lstrip!
|
||||
if input.length == 0
|
||||
input = VIM::Buffer.current.line
|
||||
input.strip!
|
||||
end
|
||||
message = nil
|
||||
|
||||
|
||||
case input
|
||||
when /^(\/[^\/]*\/)\.([^.]*)$/
|
||||
# Regexp
|
||||
receiver = $1
|
||||
message = Regexp.quote($2)
|
||||
case input
|
||||
when /^(\/[^\/]*\/)\.([^.]*)$/
|
||||
# Regexp
|
||||
receiver = $1
|
||||
message = Regexp.quote($2)
|
||||
|
||||
candidates = Regexp.instance_methods(true)
|
||||
select_message(receiver, message, candidates)
|
||||
candidates = Regexp.instance_methods(true)
|
||||
select_message(receiver, message, candidates)
|
||||
|
||||
when /^([^\]]*\])\.([^.]*)$/
|
||||
# Array
|
||||
receiver = $1
|
||||
message = Regexp.quote($2)
|
||||
when /^([^\]]*\])\.([^.]*)$/
|
||||
# Array
|
||||
receiver = $1
|
||||
message = Regexp.quote($2)
|
||||
|
||||
candidates = Array.instance_methods(true)
|
||||
select_message(receiver, message, candidates)
|
||||
candidates = Array.instance_methods(true)
|
||||
select_message(receiver, message, candidates)
|
||||
|
||||
when /^([^\}]*\})\.([^.]*)$/
|
||||
# Proc or Hash
|
||||
receiver = $1
|
||||
message = Regexp.quote($2)
|
||||
when /^([^\}]*\})\.([^.]*)$/
|
||||
# Proc or Hash
|
||||
receiver = $1
|
||||
message = Regexp.quote($2)
|
||||
|
||||
candidates = Proc.instance_methods(true) | Hash.instance_methods(true)
|
||||
select_message(receiver, message, candidates)
|
||||
candidates = Proc.instance_methods(true) | Hash.instance_methods(true)
|
||||
select_message(receiver, message, candidates)
|
||||
|
||||
when /^(:[^:.]*)$/
|
||||
# Symbol
|
||||
if Symbol.respond_to?(:all_symbols)
|
||||
sym = $1
|
||||
candidates = Symbol.all_symbols.collect{|s| ":" + s.id2name}
|
||||
candidates.grep(/^#{sym}/)
|
||||
else
|
||||
[]
|
||||
when /^(:[^:.]*)$/
|
||||
# Symbol
|
||||
if Symbol.respond_to?(:all_symbols)
|
||||
sym = $1
|
||||
candidates = Symbol.all_symbols.collect{|s| ":" + s.id2name}
|
||||
candidates.grep(/^#{sym}/)
|
||||
candidates.delete_if do |c|
|
||||
c.match( /'/ )
|
||||
end
|
||||
candidates.uniq!
|
||||
candidates.sort!
|
||||
else
|
||||
[]
|
||||
end
|
||||
|
||||
when /^::([A-Z][^:\.\(]*)$/
|
||||
# Absolute Constant or class methods
|
||||
receiver = $1
|
||||
candidates = Object.constants
|
||||
candidates.grep(/^#{receiver}/).collect{|e| "::" + e}
|
||||
when /^::([A-Z][^:\.\(]*)$/
|
||||
# Absolute Constant or class methods
|
||||
receiver = $1
|
||||
candidates = Object.constants
|
||||
candidates.grep(/^#{receiver}/).collect{|e| "::" + e}
|
||||
|
||||
when /^(((::)?[A-Z][^:.\(]*)+)::?([^:.]*)$/
|
||||
# Constant or class methods
|
||||
receiver = $1
|
||||
message = Regexp.quote($4)
|
||||
begin
|
||||
candidates = eval("#{receiver}.constants | #{receiver}.methods")
|
||||
rescue Exception
|
||||
candidates = []
|
||||
end
|
||||
candidates.grep(/^#{message}/).collect{|e| receiver + "::" + e}
|
||||
when /^(((::)?[A-Z][^:.\(]*)+)::?([^:.]*)$/
|
||||
# Constant or class methods
|
||||
receiver = $1
|
||||
message = Regexp.quote($4)
|
||||
begin
|
||||
candidates = eval("#{receiver}.constants | #{receiver}.methods")
|
||||
rescue Exception
|
||||
candidates = []
|
||||
end
|
||||
candidates.grep(/^#{message}/).collect{|e| receiver + "::" + e}
|
||||
|
||||
when /^(:[^:.]+)\.([^.]*)$/
|
||||
# Symbol
|
||||
receiver = $1
|
||||
message = Regexp.quote($2)
|
||||
when /^(:[^:.]+)\.([^.]*)$/
|
||||
# Symbol
|
||||
receiver = $1
|
||||
message = Regexp.quote($2)
|
||||
|
||||
candidates = Symbol.instance_methods(true)
|
||||
select_message(receiver, message, candidates)
|
||||
candidates = Symbol.instance_methods(true)
|
||||
select_message(receiver, message, candidates)
|
||||
|
||||
when /^([0-9_]+(\.[0-9_]+)?(e[0-9]+)?)\.([^.]*)$/
|
||||
# Numeric
|
||||
receiver = $1
|
||||
message = Regexp.quote($4)
|
||||
when /^([0-9_]+(\.[0-9_]+)?(e[0-9]+)?)\.([^.]*)$/
|
||||
# Numeric
|
||||
receiver = $1
|
||||
message = Regexp.quote($4)
|
||||
|
||||
begin
|
||||
candidates = eval(receiver).methods
|
||||
rescue Exception
|
||||
candidates
|
||||
end
|
||||
select_message(receiver, message, candidates)
|
||||
|
||||
when /^(\$[^.]*)$/
|
||||
candidates = global_variables.grep(Regexp.new(Regexp.quote($1)))
|
||||
|
||||
# when /^(\$?(\.?[^.]+)+)\.([^.]*)$/
|
||||
when /^((\.?[^.]+)+)\.([^.]*)$/
|
||||
# variable
|
||||
receiver = $1
|
||||
message = Regexp.quote($3)
|
||||
load_buffer_class( receiver )
|
||||
|
||||
cv = eval("self.class.constants")
|
||||
|
||||
vartype = VIM::evaluate("GetRubyVarType('%s')" % receiver)
|
||||
if vartype != ''
|
||||
load_buffer_class( vartype )
|
||||
|
||||
begin
|
||||
candidates = eval(receiver).methods
|
||||
rescue Exception
|
||||
candidates
|
||||
end
|
||||
select_message(receiver, message, candidates)
|
||||
|
||||
when /^(\$[^.]*)$/
|
||||
candidates = global_variables.grep(Regexp.new(Regexp.quote($1)))
|
||||
|
||||
# when /^(\$?(\.?[^.]+)+)\.([^.]*)$/
|
||||
when /^((\.?[^.]+)+)\.([^.]*)$/
|
||||
# variable
|
||||
receiver = $1
|
||||
message = Regexp.quote($3)
|
||||
|
||||
cv = eval("self.class.constants")
|
||||
|
||||
vartype = VIM::evaluate("GetRubyVarType('%s')" % receiver)
|
||||
if vartype != ''
|
||||
candidates = eval("#{vartype}.instance_methods")
|
||||
elsif (cv).include?(receiver)
|
||||
# foo.func and foo is local var.
|
||||
candidates = eval("#{receiver}.methods")
|
||||
elsif /^[A-Z]/ =~ receiver and /\./ !~ receiver
|
||||
# Foo::Bar.func
|
||||
begin
|
||||
candidates = eval("#{receiver}.methods")
|
||||
rescue Exception
|
||||
candidates = []
|
||||
end
|
||||
else
|
||||
# func1.func2
|
||||
rescue Exception
|
||||
candidates = []
|
||||
ObjectSpace.each_object(Module){|m|
|
||||
next if m.name != "IRB::Context" and
|
||||
/^(IRB|SLex|RubyLex|RubyToken)/ =~ m.name
|
||||
candidates.concat m.instance_methods(false)
|
||||
}
|
||||
candidates.sort!
|
||||
candidates.uniq!
|
||||
end
|
||||
#identify_type( receiver )
|
||||
select_message(receiver, message, candidates)
|
||||
elsif (cv).include?(receiver)
|
||||
# foo.func and foo is local var.
|
||||
candidates = eval("#{receiver}.methods")
|
||||
elsif /^[A-Z]/ =~ receiver and /\./ !~ receiver
|
||||
# Foo::Bar.func
|
||||
begin
|
||||
candidates = eval("#{receiver}.methods")
|
||||
rescue Exception
|
||||
candidates = []
|
||||
end
|
||||
else
|
||||
# func1.func2
|
||||
candidates = []
|
||||
ObjectSpace.each_object(Module){|m|
|
||||
next if m.name != "IRB::Context" and
|
||||
/^(IRB|SLex|RubyLex|RubyToken)/ =~ m.name
|
||||
candidates.concat m.instance_methods(false)
|
||||
}
|
||||
candidates.sort!
|
||||
candidates.uniq!
|
||||
end
|
||||
#identify_type( receiver )
|
||||
select_message(receiver, message, candidates)
|
||||
|
||||
#when /^((\.?[^.]+)+)\.([^.]*)\(\s*\)*$/
|
||||
#function call
|
||||
#obj = $1
|
||||
#func = $3
|
||||
|
||||
when /^\.([^.]*)$/
|
||||
when /^\.([^.]*)$/
|
||||
# unknown(maybe String)
|
||||
|
||||
receiver = ""
|
||||
message = Regexp.quote($1)
|
||||
receiver = ""
|
||||
message = Regexp.quote($1)
|
||||
|
||||
candidates = String.instance_methods(true)
|
||||
candidates = String.instance_methods(true)
|
||||
select_message(receiver, message, candidates)
|
||||
|
||||
else
|
||||
inclass = eval( VIM::evaluate("IsInClassDef()") )
|
||||
|
||||
if inclass != nil
|
||||
classdef = "%s\n" % VIM::Buffer.current[ inclass.min ]
|
||||
found = /^\s*class\s*([A-Za-z0-9_-]*)(\s*<\s*([A-Za-z0-9_:-]*))?\s*\n$/.match( classdef )
|
||||
|
||||
if found != nil
|
||||
receiver = $1
|
||||
message = input
|
||||
load_buffer_class( receiver )
|
||||
candidates = eval( "#{receiver}.instance_methods" )
|
||||
candidates += get_rails_helpers
|
||||
select_message(receiver, message, candidates)
|
||||
|
||||
else
|
||||
end
|
||||
end
|
||||
|
||||
if inclass == nil || found == nil
|
||||
candidates = eval("self.class.constants")
|
||||
|
||||
(candidates|ReservedWords).grep(/^#{Regexp.quote(input)}/)
|
||||
end
|
||||
end
|
||||
|
||||
#print candidates
|
||||
if message != nil && message.length > 0
|
||||
rexp = '^%s' % message.downcase
|
||||
candidates.delete_if do |c|
|
||||
c.downcase.match( rexp )
|
||||
$~ == nil
|
||||
end
|
||||
if message != nil && message.length > 0
|
||||
rexp = '^%s' % message.downcase
|
||||
candidates.delete_if do |c|
|
||||
c.downcase.match( rexp )
|
||||
$~ == nil
|
||||
end
|
||||
end
|
||||
|
||||
outp = ""
|
||||
# tags = VIM::evaluate("taglist('^%s$')" %
|
||||
(candidates-Object.instance_methods).each { |c| outp += "{'word':'%s','item':'%s'}," % [ c, c ] }
|
||||
outp = ""
|
||||
|
||||
# tags = VIM::evaluate("taglist('^%s$')" %
|
||||
valid = (candidates-Object.instance_methods)
|
||||
|
||||
rg = 0..valid.length
|
||||
rg.step(150) do |x|
|
||||
stpos = 0+x
|
||||
enpos = 150+x
|
||||
valid[stpos..enpos].each { |c| outp += "{'word':'%s','item':'%s'}," % [ c, c ] }
|
||||
outp.sub!(/,$/, '')
|
||||
VIM::command("let g:rbcomplete_completions = [%s]" % outp)
|
||||
|
||||
VIM::command("call extend(g:rubycomplete_completions, [%s])" % outp)
|
||||
outp = ""
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
def select_message(receiver, message, candidates)
|
||||
#tags = VIM::evaluate("taglist('%s')" % receiver)
|
||||
#print tags
|
||||
candidates.grep(/^#{message}/).collect do |e|
|
||||
case e
|
||||
when /^[a-zA-Z_]/
|
||||
@ -304,5 +462,7 @@ end
|
||||
RUBYEOF
|
||||
endfunction
|
||||
|
||||
|
||||
let g:rubycomplete_rails = 0
|
||||
call s:DefRuby()
|
||||
" vim: set et ts=4:
|
||||
|
File diff suppressed because it is too large
Load Diff
461
runtime/autoload/xml/xhtml10t.vim
Normal file
461
runtime/autoload/xml/xhtml10t.vim
Normal file
@ -0,0 +1,461 @@
|
||||
let g:xmldata_xhtml10t = {
|
||||
\ 'vimxmlentities' : ["AElig", "Aacute", "Acirc", "Agrave", "Alpha", "Aring", "Atilde", "Auml", "Beta", "Ccedil", "Chi", "Dagger", "Delta", "ETH", "Eacute", "Ecirc", "Egrave", "Epsilon", "Eta", "Euml", "Gamma", "Iacute", "Icirc", "Igrave", "Iota", "Iuml", "Kappa", "Lambda", "Mu", "Ntilde", "Nu", "OElig", "Oacute", "Ocirc", "Ograve", "Omega", "Omicron", "Oslash", "Otilde", "Ouml", "Phi", "Pi", "Prime", "Psi", "Rho", "Scaron", "Sigma", "THORN", "TITY", "Tau", "Theta", "Uacute", "Ucirc", "Ugrave", "Upsilon", "Uuml", "Xi", "Yacute", "Yuml", "Zeta", "amp", "aacute", "acirc", "acute", "aelig", "agrave", "alefsym", "alpha", "and", "ang", "apos", "aring", "asymp", "atilde", "auml", "bdquo", "beta", "brvbar", "bull", "cap", "ccedil", "cedil", "cent", "chi", "circ", "clubs", "copy", "cong", "crarr", "cup", "curren", "dArr", "dagger", "darr", "deg", "delta", "diams", "divide", "eacute", "ecirc", "egrave", "empty", "ensp", "emsp", "epsilon", "equiv", "eta", "eth", "euro", "euml", "exist", "fnof", "forall", "frac12", "frac14", "frac34", "frasl", "gt", "gamma", "ge", "hArr", "harr", "hearts", "hellip", "iacute", "icirc", "iexcl", "igrave", "image", "infin", "int", "iota", "iquest", "isin", "iuml", "kappa", "lt", "laquo", "lArr", "lambda", "lang", "larr", "lceil", "ldquo", "le", "lfloor", "lowast", "loz", "lrm", "lsaquo", "lsquo", "macr", "mdash", "micro", "middot", "minus", "mu", "nbsp", "nabla", "ndash", "ne", "ni", "not", "notin", "nsub", "ntilde", "nu", "oacute", "ocirc", "oelig", "ograve", "oline", "omega", "omicron", "oplus", "or", "ordf", "ordm", "oslash", "otilde", "otimes", "ouml", "para", "part", "permil", "perp", "phi", "pi", "piv", "plusmn", "pound", "prime", "prod", "prop", "psi", "quot", "rArr", "raquo", "radic", "rang", "rarr", "rceil", "rdquo", "real", "reg", "rfloor", "rho", "rlm", "rsaquo", "rsquo", "sbquo", "scaron", "sdot", "sect", "shy", "sigma", "sigmaf", "sim", "spades", "sub", "sube", "sum", "sup", "sup1", "sup2", "sup3", "supe", "szlig", "tau", "there4", "theta", "thetasym", "thinsp", "thorn", "tilde", "times", "trade", "uArr", "uacute", "uarr", "ucirc", "ugrave", "uml", "upsih", "upsilon", "uuml", "weierp", "xi", "yacute", "yen", "yuml", "zeta", "zwj", "zwnj"],
|
||||
\ 'vimxmlroot': ['html'],
|
||||
\ 'a': [
|
||||
\ ['br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
|
||||
\ { 'accesskey': [], 'rel': [], 'coords': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'onkeydown': [], 'target': [], 'onfocus': [], 'onkeyup': [], 'href': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'tabindex': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'name': [], 'charset': [], 'xml:lang': [], 'hreflang': [], 'onkeypress': [], 'onmousedown': [], 'rev': [], 'class': [], 'title': [], 'onclick': [], 'type': [], 'shape': ['rect', 'rect', 'circle', 'poly', 'default']}
|
||||
\ ],
|
||||
\ 'abbr': [
|
||||
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
|
||||
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
|
||||
\ ],
|
||||
\ 'acronym': [
|
||||
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
|
||||
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
|
||||
\ ],
|
||||
\ 'address': [
|
||||
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script', 'p'],
|
||||
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
|
||||
\ ],
|
||||
\ 'applet': [
|
||||
\ ['param', 'p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'menu', 'dir', 'pre', 'hr', 'blockquote', 'address', 'center', 'noframes', 'isindex', 'fieldset', 'table', 'form', 'a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'noscript', 'ins', 'del', 'script'],
|
||||
\ { 'width': [], 'object': [], 'id': [], 'code': [], 'vspace': [], 'archive': [], 'alt': [], 'align': ['top', 'middle', 'bottom', 'left', 'right'], 'style': [], 'name': [], 'height': [], 'hspace': [], 'title': [], 'class': [], 'codebase': []}
|
||||
\ ],
|
||||
\ 'area': [
|
||||
\ [],
|
||||
\ { 'accesskey': [], 'coords': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'onkeydown': [], 'onfocus': [], 'nohref': ['BOOL'], 'target': [], 'onkeyup': [], 'href': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'tabindex': [], 'lang': [], 'alt': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'shape': ['rect', 'rect', 'circle', 'poly', 'default']}
|
||||
\ ],
|
||||
\ 'b': [
|
||||
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
|
||||
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
|
||||
\ ],
|
||||
\ 'base': [
|
||||
\ [],
|
||||
\ { 'target': [], 'href': [], 'id': []}
|
||||
\ ],
|
||||
\ 'basefont': [
|
||||
\ [],
|
||||
\ { 'size': [], 'face': [], 'color': [], 'id': []}
|
||||
\ ],
|
||||
\ 'bdo': [
|
||||
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
|
||||
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
|
||||
\ ],
|
||||
\ 'big': [
|
||||
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
|
||||
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
|
||||
\ ],
|
||||
\ 'blockquote': [
|
||||
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'menu', 'dir', 'pre', 'hr', 'blockquote', 'address', 'center', 'noframes', 'isindex', 'fieldset', 'table', 'form', 'a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'noscript', 'ins', 'del', 'script'],
|
||||
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'cite': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
|
||||
\ ],
|
||||
\ 'body': [
|
||||
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'menu', 'dir', 'pre', 'hr', 'blockquote', 'address', 'center', 'noframes', 'isindex', 'fieldset', 'table', 'form', 'a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'noscript', 'ins', 'del', 'script'],
|
||||
\ { 'vlink': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'alink': [], 'onkeyup': [], 'bgcolor': [], 'text': [], 'onmouseup': [], 'id': [], 'link': [], 'onmouseover': [], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'background': [], 'xml:lang': [], 'onunload': [], 'onkeypress': [], 'onmousedown': [], 'onload': [], 'class': [], 'title': [], 'onclick': []}
|
||||
\ ],
|
||||
\ 'br': [
|
||||
\ [],
|
||||
\ { 'clear': ['none', 'left', 'all', 'right', 'none'], 'id': [], 'style': [], 'class': [], 'title': []}
|
||||
\ ],
|
||||
\ 'button': [
|
||||
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'menu', 'dir', 'pre', 'hr', 'blockquote', 'address', 'center', 'noframes', 'table', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'noscript', 'ins', 'del', 'script'],
|
||||
\ { 'accesskey': [], 'disabled': ['BOOL'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'onkeydown': [], 'onfocus': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'tabindex': [], 'lang': [], 'value': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'name': [], 'xml:lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'type': ['submit', 'button', 'submit', 'reset']}
|
||||
\ ],
|
||||
\ 'caption': [
|
||||
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
|
||||
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['top', 'bottom', 'left', 'right'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
|
||||
\ ],
|
||||
\ 'center': [
|
||||
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'menu', 'dir', 'pre', 'hr', 'blockquote', 'address', 'center', 'noframes', 'isindex', 'fieldset', 'table', 'form', 'a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'noscript', 'ins', 'del', 'script'],
|
||||
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
|
||||
\ ],
|
||||
\ 'cite': [
|
||||
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
|
||||
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
|
||||
\ ],
|
||||
\ 'code': [
|
||||
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
|
||||
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
|
||||
\ ],
|
||||
\ 'col': [
|
||||
\ [],
|
||||
\ { 'width': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'charoff': [], 'onmouseover': [], 'lang': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'onkeypress': [], 'onmousedown': [], 'char': [], 'span': ['1'], 'class': [], 'title': [], 'onclick': []}
|
||||
\ ],
|
||||
\ 'colgroup': [
|
||||
\ ['col'],
|
||||
\ { 'width': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'charoff': [], 'onmouseover': [], 'lang': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'onkeypress': [], 'onmousedown': [], 'char': [], 'span': ['1'], 'class': [], 'title': [], 'onclick': []}
|
||||
\ ],
|
||||
\ 'dd': [
|
||||
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'menu', 'dir', 'pre', 'hr', 'blockquote', 'address', 'center', 'noframes', 'isindex', 'fieldset', 'table', 'form', 'a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'noscript', 'ins', 'del', 'script'],
|
||||
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
|
||||
\ ],
|
||||
\ 'del': [
|
||||
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'menu', 'dir', 'pre', 'hr', 'blockquote', 'address', 'center', 'noframes', 'isindex', 'fieldset', 'table', 'form', 'a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'noscript', 'ins', 'del', 'script'],
|
||||
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'datetime': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'cite': [], 'onmouseover': [], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
|
||||
\ ],
|
||||
\ 'dfn': [
|
||||
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
|
||||
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
|
||||
\ ],
|
||||
\ 'dir': [
|
||||
\ ['li'],
|
||||
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'compact': ['BOOL'], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
|
||||
\ ],
|
||||
\ 'div': [
|
||||
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'menu', 'dir', 'pre', 'hr', 'blockquote', 'address', 'center', 'noframes', 'isindex', 'fieldset', 'table', 'form', 'a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'noscript', 'ins', 'del', 'script'],
|
||||
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
|
||||
\ ],
|
||||
\ 'dl': [
|
||||
\ ['dt', 'dd'],
|
||||
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'compact': ['BOOL'], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
|
||||
\ ],
|
||||
\ 'dt': [
|
||||
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
|
||||
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
|
||||
\ ],
|
||||
\ 'em': [
|
||||
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
|
||||
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
|
||||
\ ],
|
||||
\ 'fieldset': [
|
||||
\ ['legend', 'p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'menu', 'dir', 'pre', 'hr', 'blockquote', 'address', 'center', 'noframes', 'isindex', 'fieldset', 'table', 'form', 'a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'noscript', 'ins', 'del', 'script'],
|
||||
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
|
||||
\ ],
|
||||
\ 'font': [
|
||||
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
|
||||
\ { 'dir': ['ltr', 'rtl'], 'size': [], 'face': [], 'color': [], 'id': [], 'lang': [], 'style': [], 'xml:lang': [], 'title': [], 'class': []}
|
||||
\ ],
|
||||
\ 'form': [
|
||||
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'menu', 'dir', 'pre', 'hr', 'blockquote', 'address', 'center', 'noframes', 'isindex', 'fieldset', 'table', 'a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'noscript', 'ins', 'del', 'script'],
|
||||
\ { 'enctype': ['application/x-www-form-urlencoded'], 'onsubmit': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'target': [], 'onkeyup': [], 'onmouseup': [], 'onreset': [], 'id': [], 'method': ['get', 'get', 'post'], 'onmouseover': [], 'lang': [], 'accept': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'name': [], 'xml:lang': [], 'accept-charset': [], 'onkeypress': [], 'onmousedown': [], 'action': [], 'class': [], 'title': [], 'onclick': []}
|
||||
\ ],
|
||||
\ 'h1': [
|
||||
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
|
||||
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
|
||||
\ ],
|
||||
\ 'h2': [
|
||||
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
|
||||
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
|
||||
\ ],
|
||||
\ 'h3': [
|
||||
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
|
||||
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
|
||||
\ ],
|
||||
\ 'h4': [
|
||||
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
|
||||
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
|
||||
\ ],
|
||||
\ 'h5': [
|
||||
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
|
||||
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
|
||||
\ ],
|
||||
\ 'h6': [
|
||||
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
|
||||
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
|
||||
\ ],
|
||||
\ 'head': [
|
||||
\ ['script', 'style', 'meta', 'link', 'object', 'isindex', 'title', 'script', 'style', 'meta', 'link', 'object', 'isindex', 'base', 'script', 'style', 'meta', 'link', 'object', 'isindex', 'base', 'script', 'style', 'meta', 'link', 'object', 'isindex', 'title', 'script', 'style', 'meta', 'link', 'object', 'isindex'],
|
||||
\ { 'profile': [], 'dir': ['ltr', 'rtl'], 'id': [], 'lang': [], 'xml:lang': []}
|
||||
\ ],
|
||||
\ 'hr': [
|
||||
\ [],
|
||||
\ { 'width': [], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'size': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right'], 'lang': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'noshade': ['BOOL'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
|
||||
\ ],
|
||||
\ 'html': [
|
||||
\ ['head', 'body'],
|
||||
\ { 'xmlns': ['http://www.w3.org/1999/xhtml'], 'dir': ['ltr', 'rtl'], 'id': [], 'lang': [], 'xml:lang': []}
|
||||
\ ],
|
||||
\ 'i': [
|
||||
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
|
||||
\ { 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': []}
|
||||
\ ],
|
||||
\ 'iframe': [
|
||||
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'menu', 'dir', 'pre', 'hr', 'blockquote', 'address', 'center', 'noframes', 'isindex', 'fieldset', 'table', 'form', 'a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'noscript', 'ins', 'del', 'script'],
|
||||
\ { 'width': [], 'scrolling': ['auto', 'yes', 'no', 'auto'], 'marginwidth': [], 'id': [], 'marginheight': [], 'align': ['top', 'middle', 'bottom', 'left', 'right'], 'longdesc': [], 'src': [], 'style': [], 'name': [], 'height': [], 'frameborder': ['1', '1', '0'], 'title': [], 'class': []}
|
||||
\ ],
|
||||
\ 'img': [
|
||||
\ [],
|
||||
\ { 'width': [], 'usemap': [], 'ismap': ['BOOL'], 'ondblclick': [], 'dir': ['ltr', 'rtl'], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'vspace': [], 'onmouseover': [], 'alt': [], 'lang': [], 'align': ['top', 'middle', 'bottom', 'left', 'right'], 'src': [], 'longdesc': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'name': [], 'xml:lang': [], 'height': [], 'border': [], 'hspace': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': []}
|
||||
\ ],
|
||||
\ 'input': [
|
||||
\ [],
|
||||
\ { 'ondblclick': [], 'onkeydown': [], 'readonly': ['BOOL'], 'onchange': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'align': ['top', 'middle', 'bottom', 'left', 'right'], 'value': [], 'src': [], 'name': [], 'checked': ['BOOL'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'type': ['text', 'text', 'password', 'checkbox', 'radio', 'submit', 'reset', 'file', 'hidden', 'image', 'button'], 'accesskey': [], 'disabled': ['BOOL'], 'usemap': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'size': [], 'onfocus': [], 'maxlength': [], 'onselect': [], 'accept': [], 'tabindex': [], 'alt': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
|
||||
\ ],
|
||||
\ 'ins': [
|
||||
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'menu', 'dir', 'pre', 'hr', 'blockquote', 'address', 'center', 'noframes', 'isindex', 'fieldset', 'table', 'form', 'a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'noscript', 'ins', 'del', 'script'],
|
||||
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'datetime': [], 'cite': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': []}
|
||||
\ ],
|
||||
\ 'isindex': [
|
||||
\ [],
|
||||
\ { 'id': [], 'lang': [], 'prompt': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'xml:lang': []}
|
||||
\ ],
|
||||
\ 'kbd': [
|
||||
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
|
||||
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
|
||||
\ ],
|
||||
\ 'label': [
|
||||
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
|
||||
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'for': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'accesskey': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'onfocus': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': []}
|
||||
\ ],
|
||||
\ 'legend': [
|
||||
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
|
||||
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['top', 'bottom', 'left', 'right'], 'lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'accesskey': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': []}
|
||||
\ ],
|
||||
\ 'li': [
|
||||
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'menu', 'dir', 'pre', 'hr', 'blockquote', 'address', 'center', 'noframes', 'isindex', 'fieldset', 'table', 'form', 'a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'noscript', 'ins', 'del', 'script'],
|
||||
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'value': [], 'onkeypress': [], 'onmousedown': [], 'type': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': []}
|
||||
\ ],
|
||||
\ 'link': [
|
||||
\ [],
|
||||
\ { 'rel': [], 'ondblclick': [], 'onkeydown': [], 'target': [], 'onkeyup': [], 'href': [], 'media': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'charset': [], 'hreflang': [], 'onkeypress': [], 'onmousedown': [], 'rev': [], 'class': [], 'title': [], 'onclick': [], 'type': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': []}
|
||||
\ ],
|
||||
\ 'map': [
|
||||
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'menu', 'dir', 'pre', 'hr', 'blockquote', 'address', 'center', 'noframes', 'isindex', 'fieldset', 'table', 'form', 'noscript', 'ins', 'del', 'script', 'area'],
|
||||
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'name': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'onclick': [], 'title': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmouseout': [], 'onmousemove': [], 'xml:lang': []}
|
||||
\ ],
|
||||
\ 'menu': [
|
||||
\ ['li'],
|
||||
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'compact': ['BOOL'], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
|
||||
\ ],
|
||||
\ 'meta': [
|
||||
\ [],
|
||||
\ { 'http-equiv': [], 'content': [], 'id': [], 'lang': [], 'name': [], 'scheme': [], 'dir': ['ltr', 'rtl'], 'xml:lang': []}
|
||||
\ ],
|
||||
\ 'noframes': [
|
||||
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'menu', 'dir', 'pre', 'hr', 'blockquote', 'address', 'center', 'noframes', 'isindex', 'fieldset', 'table', 'form', 'a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'noscript', 'ins', 'del', 'script'],
|
||||
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
|
||||
\ ],
|
||||
\ 'noscript': [
|
||||
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'menu', 'dir', 'pre', 'hr', 'blockquote', 'address', 'center', 'noframes', 'isindex', 'fieldset', 'table', 'form', 'a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'noscript', 'ins', 'del', 'script'],
|
||||
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
|
||||
\ ],
|
||||
\ 'object': [
|
||||
\ ['param', 'p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'menu', 'dir', 'pre', 'hr', 'blockquote', 'address', 'center', 'noframes', 'isindex', 'fieldset', 'table', 'form', 'a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'noscript', 'ins', 'del', 'script'],
|
||||
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'align': ['top', 'middle', 'bottom', 'left', 'right'], 'name': [], 'data': [], 'declare': ['BOOL'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'type': [], 'width': [], 'usemap': [], 'dir': ['ltr', 'rtl'], 'vspace': [], 'tabindex': [], 'standby': [], 'archive': [], 'classid': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'height': [], 'xml:lang': [], 'border': [], 'codetype': [], 'hspace': [], 'codebase': []}
|
||||
\ ],
|
||||
\ 'ol': [
|
||||
\ ['li'],
|
||||
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'compact': ['BOOL'], 'onmouseover': [], 'lang': [], 'onkeypress': [], 'onmousedown': [], 'type': [], 'class': [], 'title': [], 'onclick': [], 'start': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': []}
|
||||
\ ],
|
||||
\ 'optgroup': [
|
||||
\ ['option'],
|
||||
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'label': [], 'disabled': ['BOOL'], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': []}
|
||||
\ ],
|
||||
\ 'option': [
|
||||
\ [''],
|
||||
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'value': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'label': [], 'disabled': ['BOOL'], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'selected': ['BOOL']}
|
||||
\ ],
|
||||
\ 'p': [
|
||||
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
|
||||
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify'], 'lang': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': []}
|
||||
\ ],
|
||||
\ 'param': [
|
||||
\ [],
|
||||
\ { 'id': [], 'value': [], 'name': [], 'type': [], 'valuetype': ['data', 'data', 'ref', 'object']}
|
||||
\ ],
|
||||
\ 'pre': [
|
||||
\ ['a', 'br', 'span', 'bdo', 'tt', 'i', 'b', 'u', 's', 'strike', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
|
||||
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'xml:space': ['preserve', 'preserve'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'width': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': []}
|
||||
\ ],
|
||||
\ 'q': [
|
||||
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
|
||||
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'cite': [], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
|
||||
\ ],
|
||||
\ 's': [
|
||||
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
|
||||
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
|
||||
\ ],
|
||||
\ 'samp': [
|
||||
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
|
||||
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
|
||||
\ ],
|
||||
\ 'script': [
|
||||
\ [''],
|
||||
\ { 'id': [], 'src': [], 'charset': [], 'xml:space': ['preserve', 'preserve'], 'type': ['text/javascript'], 'defer': ['BOOL'], 'language': []}
|
||||
\ ],
|
||||
\ 'select': [
|
||||
\ ['optgroup', 'option'],
|
||||
\ { 'ondblclick': [], 'onkeydown': [], 'onchange': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'name': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'disabled': ['BOOL'], 'dir': ['ltr', 'rtl'], 'size': [], 'onblur': [], 'onfocus': [], 'tabindex': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'multiple': ['BOOL']}
|
||||
\ ],
|
||||
\ 'small': [
|
||||
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
|
||||
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
|
||||
\ ],
|
||||
\ 'span': [
|
||||
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
|
||||
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
|
||||
\ ],
|
||||
\ 'strike': [
|
||||
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
|
||||
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
|
||||
\ ],
|
||||
\ 'strong': [
|
||||
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
|
||||
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
|
||||
\ ],
|
||||
\ 'style': [
|
||||
\ [''],
|
||||
\ { 'media': [], 'id': [], 'lang': [], 'xml:space': ['preserve', 'preserve'], 'title': [], 'type': ['text/css'], 'dir': ['ltr', 'rtl'], 'xml:lang': []}
|
||||
\ ],
|
||||
\ 'sub': [
|
||||
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
|
||||
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
|
||||
\ ],
|
||||
\ 'sup': [
|
||||
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
|
||||
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
|
||||
\ ],
|
||||
\ 'table': [
|
||||
\ ['caption', 'col', 'colgroup', 'thead', 'tfoot', 'tbody', 'tr'],
|
||||
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'align': ['left', 'center', 'right'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'width': [], 'frame': ['void', 'above', 'below', 'hsides', 'lhs', 'rhs', 'vsides', 'box', 'border'], 'rules': ['none', 'groups', 'rows', 'cols', 'all'], 'dir': ['ltr', 'rtl'], 'summary': [], 'bgcolor': [], 'cellspacing': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'border': [], 'cellpadding': []}
|
||||
\ ],
|
||||
\ 'tbody': [
|
||||
\ ['tr'],
|
||||
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'lang': [], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'char': []}
|
||||
\ ],
|
||||
\ 'td': [
|
||||
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'menu', 'dir', 'pre', 'hr', 'blockquote', 'address', 'center', 'noframes', 'isindex', 'fieldset', 'table', 'form', 'a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'noscript', 'ins', 'del', 'script'],
|
||||
\ { 'ondblclick': [], 'axis': [], 'onkeydown': [], 'abbr': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'scope': ['row', 'col', 'rowgroup', 'colgroup'], 'onmouseover': [], 'lang': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'width': [], 'headers': [], 'nowrap': ['BOOL'], 'dir': ['ltr', 'rtl'], 'rowspan': ['1'], 'colspan': ['1'], 'bgcolor': [], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'height': [], 'char': []}
|
||||
\ ],
|
||||
\ 'textarea': [
|
||||
\ [''],
|
||||
\ { 'ondblclick': [], 'cols': [], 'onkeydown': [], 'readonly': ['BOOL'], 'onchange': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'name': [], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'accesskey': [], 'disabled': ['BOOL'], 'rows': [], 'dir': ['ltr', 'rtl'], 'onblur': [], 'onfocus': [], 'onselect': [], 'tabindex': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': []}
|
||||
\ ],
|
||||
\ 'tfoot': [
|
||||
\ ['tr'],
|
||||
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'lang': [], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'char': []}
|
||||
\ ],
|
||||
\ 'th': [
|
||||
\ ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'ul', 'ol', 'dl', 'menu', 'dir', 'pre', 'hr', 'blockquote', 'address', 'center', 'noframes', 'isindex', 'fieldset', 'table', 'form', 'a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'noscript', 'ins', 'del', 'script'],
|
||||
\ { 'ondblclick': [], 'axis': [], 'onkeydown': [], 'abbr': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'scope': ['row', 'col', 'rowgroup', 'colgroup'], 'onmouseover': [], 'lang': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'width': [], 'headers': [], 'nowrap': ['BOOL'], 'dir': ['ltr', 'rtl'], 'rowspan': ['1'], 'colspan': ['1'], 'bgcolor': [], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'height': [], 'char': []}
|
||||
\ ],
|
||||
\ 'thead': [
|
||||
\ ['tr'],
|
||||
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'lang': [], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'char': []}
|
||||
\ ],
|
||||
\ 'title': [
|
||||
\ [''],
|
||||
\ { 'id': [], 'lang': [], 'dir': ['ltr', 'rtl'], 'xml:lang': []}
|
||||
\ ],
|
||||
\ 'tr': [
|
||||
\ ['th', 'td'],
|
||||
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'align': ['left', 'center', 'right', 'justify', 'char'], 'lang': [], 'valign': ['top', 'middle', 'bottom', 'baseline'], 'onkeypress': [], 'onmousedown': [], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'bgcolor': [], 'charoff': [], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': [], 'char': []}
|
||||
\ ],
|
||||
\ 'tt': [
|
||||
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
|
||||
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
|
||||
\ ],
|
||||
\ 'u': [
|
||||
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
|
||||
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
|
||||
\ ],
|
||||
\ 'ul': [
|
||||
\ ['li'],
|
||||
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'compact': ['BOOL'], 'onmouseover': [], 'lang': [], 'onkeypress': [], 'onmousedown': [], 'type': ['disc', 'square', 'circle'], 'class': [], 'title': [], 'onclick': [], 'dir': ['ltr', 'rtl'], 'onmouseout': [], 'onmousemove': [], 'style': [], 'xml:lang': []}
|
||||
\ ],
|
||||
\ 'var': [
|
||||
\ ['a', 'br', 'span', 'bdo', 'object', 'applet', 'img', 'map', 'iframe', 'tt', 'i', 'b', 'u', 's', 'strike', 'big', 'small', 'font', 'basefont', 'em', 'strong', 'dfn', 'code', 'q', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'sub', 'sup', 'input', 'select', 'textarea', 'label', 'button', 'ins', 'del', 'script'],
|
||||
\ { 'ondblclick': [], 'onkeydown': [], 'onkeyup': [], 'onmouseup': [], 'id': [], 'onmouseover': [], 'lang': [], 'onmousedown': [], 'onkeypress': [], 'onclick': [], 'title': [], 'class': [], 'dir': ['ltr', 'rtl'], 'style': [], 'onmousemove': [], 'onmouseout': [], 'xml:lang': []}
|
||||
\ ],
|
||||
\ 'vimxmlattrinfo' : {
|
||||
\ 'accept' : ['ContentType', ''],
|
||||
\ 'accesskey' : ['Character', ''],
|
||||
\ 'action' : ['*URI', ''],
|
||||
\ 'align' : ['String', ''],
|
||||
\ 'alt' : ['*Text', ''],
|
||||
\ 'archive' : ['UriList', ''],
|
||||
\ 'axis' : ['CDATA', ''],
|
||||
\ 'border' : ['Pixels', ''],
|
||||
\ 'cellpadding' : ['Length', ''],
|
||||
\ 'cellspacing' : ['Length', ''],
|
||||
\ 'char' : ['Character', ''],
|
||||
\ 'charoff' : ['Length', ''],
|
||||
\ 'charset' : ['LangCode', ''],
|
||||
\ 'checked' : ['Bool', ''],
|
||||
\ 'class' : ['CDATA', ''],
|
||||
\ 'codetype' : ['ContentType', ''],
|
||||
\ 'cols' : ['*Number', ''],
|
||||
\ 'colspan' : ['Number', ''],
|
||||
\ 'content' : ['*CDATA', ''],
|
||||
\ 'coords' : ['Coords', ''],
|
||||
\ 'data' : ['URI', ''],
|
||||
\ 'datetime' : ['DateTime', ''],
|
||||
\ 'declare' : ['Bool', ''],
|
||||
\ 'defer' : ['Bool', ''],
|
||||
\ 'dir' : ['String', ''],
|
||||
\ 'disabled' : ['Bool', ''],
|
||||
\ 'enctype' : ['ContentType', ''],
|
||||
\ 'for' : ['ID', ''],
|
||||
\ 'headers' : ['IDREFS', ''],
|
||||
\ 'height' : ['Number', ''],
|
||||
\ 'href' : ['*URI', ''],
|
||||
\ 'hreflang' : ['LangCode', ''],
|
||||
\ 'id' : ['ID', 'Unique string'],
|
||||
\ 'ismap' : ['Bool', ''],
|
||||
\ 'label' : ['*Text', ''],
|
||||
\ 'lang' : ['LangCode', ''],
|
||||
\ 'longdesc' : ['URI', ''],
|
||||
\ 'maxlength' : ['Number', ''],
|
||||
\ 'media' : ['MediaDesc', ''],
|
||||
\ 'method' : ['String', ''],
|
||||
\ 'multiple' : ['Bool', ''],
|
||||
\ 'name' : ['CDATA', ''],
|
||||
\ 'nohref' : ['Bool', ''],
|
||||
\ 'onblur' : ['Script', ''],
|
||||
\ 'onchange' : ['Script', ''],
|
||||
\ 'onclick' : ['Script', ''],
|
||||
\ 'ondblclick' : ['Script', ''],
|
||||
\ 'onfocus' : ['Script', ''],
|
||||
\ 'onkeydown' : ['Script', ''],
|
||||
\ 'onkeypress' : ['Script', ''],
|
||||
\ 'onkeyup' : ['Script', ''],
|
||||
\ 'onload' : ['Script', ''],
|
||||
\ 'onmousedown' : ['Script', ''],
|
||||
\ 'onmousemove' : ['Script', ''],
|
||||
\ 'onmouseout' : ['Script', ''],
|
||||
\ 'onmouseover' : ['Script', ''],
|
||||
\ 'onmouseup' : ['Script', ''],
|
||||
\ 'onreset' : ['Script', ''],
|
||||
\ 'onselect' : ['Script', ''],
|
||||
\ 'onsubmit' : ['Script', ''],
|
||||
\ 'onunload' : ['Script', ''],
|
||||
\ 'profile' : ['URI', ''],
|
||||
\ 'readonly' : ['Bool', ''],
|
||||
\ 'rel' : ['LinkTypes', ''],
|
||||
\ 'rev' : ['LinkTypes', ''],
|
||||
\ 'rows' : ['*Number', ''],
|
||||
\ 'rules' : ['String', ''],
|
||||
\ 'scheme' : ['CDATA', ''],
|
||||
\ 'selected' : ['Bool', ''],
|
||||
\ 'shape' : ['Shape', ''],
|
||||
\ 'size' : ['CDATA', ''],
|
||||
\ 'span' : ['Number', ''],
|
||||
\ 'src' : ['*URI', ''],
|
||||
\ 'standby' : ['Text', ''],
|
||||
\ 'style' : ['StyleSheet', ''],
|
||||
\ 'summary' : ['*Text', ''],
|
||||
\ 'tabindex' : ['Number', ''],
|
||||
\ 'title' : ['Text', ''],
|
||||
\ 'type' : ['*ContentType', ''],
|
||||
\ 'usemap' : ['URI', ''],
|
||||
\ 'valign' : ['String', ''],
|
||||
\ 'valuetype' : ['String', ''],
|
||||
\ 'width' : ['Number', ''],
|
||||
\ 'xmlns' : ['URI', '']
|
||||
\ },
|
||||
\ 'vimxmltaginfo': {
|
||||
\ 'area': ['/>', ''],
|
||||
\ 'base': ['/>', ''],
|
||||
\ 'basefont': ['/>', ''],
|
||||
\ 'br': ['/>', ''],
|
||||
\ 'col': ['/>', ''],
|
||||
\ 'hr': ['/>', ''],
|
||||
\ 'img': ['/>', ''],
|
||||
\ 'input': ['/>', ''],
|
||||
\ 'isindex': ['/>', ''],
|
||||
\ 'link': ['/>', ''],
|
||||
\ 'meta': ['/>', ''],
|
||||
\ 'param': ['/>', ''],
|
||||
\ }
|
||||
\ }
|
||||
" vim:ft=vim:ff=unix
|
@ -1,4 +1,4 @@
|
||||
*insert.txt* For Vim version 7.0e. Last change: 2006 Apr 18
|
||||
*insert.txt* For Vim version 7.0e. Last change: 2006 Apr 20
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -1026,7 +1026,8 @@ The "menu" item is used in the popup menu and may be truncated, thus it should
|
||||
be relatively short. The "info" item can be longer, it will be displayed in
|
||||
the preview window when "preview" appears in 'completeopt'. The "info" item
|
||||
will also remain displayed after the popup menu has been removed. This is
|
||||
useful for function arguments.
|
||||
useful for function arguments. Use a single space for "info" to remove
|
||||
existing text in the preview window.
|
||||
|
||||
The "kind" item uses a single letter to indicate the kind of completion. This
|
||||
may be used to show the completion differently (different color or icon).
|
||||
@ -1266,22 +1267,32 @@ run |:make| command to detect formatting problems.
|
||||
|
||||
HTML flavor *html-flavor*
|
||||
|
||||
By default HTML completion provides completion for XHTML 1.0 Strict. This is
|
||||
not the only HTML version. To use another data file and still have benefits of
|
||||
custom completion for class, style, etc. attributes set g:html_omni_flavor
|
||||
variable. Example (in .vimrc or filetype plugin file): >
|
||||
Default HTML completion depends on filetype. For HTML files it is HTML
|
||||
4.01 Transitional (&ft=='html'), for XHTML it is XHTML 1.0 Strict
|
||||
(&ft=='xhtml').
|
||||
|
||||
let g:html_omni_flavor = 'xhtml10t'
|
||||
These are not the only HTML versions. To use another data file and still
|
||||
have benefits of custom completion for class, style, etc. attributes set
|
||||
b:html_omni_flavor variable. Example (in .vimrc or filetype plugin
|
||||
file): >
|
||||
|
||||
Data for HTML completion will be read from 'autoload/xml/xhtml10t.vim' file
|
||||
located somewhere in 'runtimepath' (not in default distribution).
|
||||
let g:html_omni_flavor = 'xhtml10s'
|
||||
|
||||
More about format of data file in |xml-omni-datafile|. Some of data files may
|
||||
in future be found on vim-online site (|www|).
|
||||
(Completion data file for HTML 4.01 Strict is also provided by Vim
|
||||
distribution.)
|
||||
|
||||
Note that g:html_omni_flavor may point to file with any XML data. This makes
|
||||
possible to mix PHP (|ft-php-omni|) completion with whatever XML dialect
|
||||
(assuming you have data file for it).
|
||||
Data for HTML completion will be read from 'autoload/xml/html10s.vim' file
|
||||
located somewhere in 'runtimepath'.
|
||||
|
||||
Note: HTML completion files are also located in 'autoload/xml'
|
||||
directory.
|
||||
|
||||
More about format of data file in |xml-omni-datafile|. Some of data
|
||||
files may in future be found on vim-online site (|www|).
|
||||
|
||||
Note that b:html_omni_flavor may point to file with any XML data. This
|
||||
makes possible to mix PHP (|ft-php-omni|) completion with whatever XML
|
||||
dialect (assuming you have data file for it).
|
||||
|
||||
|
||||
JAVASCRIPT *ft-javascript-omni*
|
||||
@ -1359,6 +1370,39 @@ automatically switch to HTML/CSS/JavaScript completion. Note: contrary to
|
||||
original HTML files completion of tags (and only tags) isn't context aware.
|
||||
|
||||
|
||||
RUBY *ft-ruby-omni*
|
||||
|
||||
Completion of Ruby code requires that vim be built with |+ruby|.
|
||||
|
||||
Ruby completion will parse your buffer on demand in order to provide a list of
|
||||
completions. These completions will be drawn from modules loaded by 'require'
|
||||
and modules defined in the current buffer.
|
||||
|
||||
The completions provided by CTRL-X CTRL-O are sensitive to the context:
|
||||
|
||||
CONTEXT COMPLETIONS PROVIDED ~
|
||||
|
||||
1. Not inside a class definition Classes, constants and globals
|
||||
|
||||
2. Inside a class definition Methods or constants defined in the class
|
||||
|
||||
3. After '.', '::' or ':' Methods applicable to the object being
|
||||
dereferenced
|
||||
|
||||
4. After ':' or ':foo' Symbol name (beginning with 'foo')
|
||||
|
||||
Notes:
|
||||
- Vim will load/evaluate code in order to provide completions. This may
|
||||
cause some code execution, which may be a concern.
|
||||
- In context 2 above, anonymous classes are not supported.
|
||||
- In context 3 above, Vim will attempt to determine the methods supported by
|
||||
the object.
|
||||
- Vim can detect and load the Rails environment for files within a rails
|
||||
project. The feature is disabled by default, to enable it add >
|
||||
let g:rubycomplete_rails = 1
|
||||
< to your vimrc.
|
||||
|
||||
|
||||
SYNTAX *ft-syntax-omni*
|
||||
|
||||
This uses the current syntax highlighting for completion. It can be used for
|
||||
|
@ -1,4 +1,4 @@
|
||||
*intro.txt* For Vim version 7.0e. Last change: 2006 Apr 09
|
||||
*intro.txt* For Vim version 7.0e. Last change: 2006 Apr 20
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -75,7 +75,7 @@ Published by O'Reilly. ISBN: 1-56592-426-6.
|
||||
==============================================================================
|
||||
2. Vim on the internet *internet*
|
||||
|
||||
*www* *faq* *FAQ* *distribution* *download*
|
||||
*www* *WWW* *faq* *FAQ* *distribution* *download*
|
||||
The Vim pages contain the most recent information about Vim. They also
|
||||
contain links to the most recent version of Vim. The FAQ is a list of
|
||||
Frequently Asked Questions. Read this if you have problems.
|
||||
|
@ -1,4 +1,4 @@
|
||||
*map.txt* For Vim version 7.0e. Last change: 2006 Apr 19
|
||||
*map.txt* For Vim version 7.0e. Last change: 2006 Apr 20
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -882,10 +882,11 @@ See |:verbose-cmd| for more information.
|
||||
avoid that a typed {lhs} is expanded, since
|
||||
command-line abbreviations apply here.
|
||||
|
||||
:ab[breviate] {lhs} {rhs}
|
||||
:ab[breviate] [<expr>] {lhs} {rhs}
|
||||
add abbreviation for {lhs} to {rhs}. If {lhs} already
|
||||
existed it is replaced with the new {rhs}. {rhs} may
|
||||
contain spaces.
|
||||
See |:map-<expr>| for the optional <expr> argument.
|
||||
|
||||
*:una* *:unabbreviate*
|
||||
:una[bbreviate] {lhs} Remove abbreviation for {lhs} from the list. If none
|
||||
@ -895,12 +896,13 @@ See |:verbose-cmd| for more information.
|
||||
expansion insert a CTRL-V (type it twice).
|
||||
|
||||
*:norea* *:noreabbrev*
|
||||
:norea[bbrev] [lhs] [rhs]
|
||||
:norea[bbrev] [<expr>] [lhs] [rhs]
|
||||
same as ":ab", but no remapping for this {rhs} {not
|
||||
in Vi}
|
||||
|
||||
*:ca* *:cabbrev*
|
||||
:ca[bbrev] [lhs] [rhs] same as ":ab", but for Command-line mode only. {not
|
||||
:ca[bbrev] [<expr>] [lhs] [rhs]
|
||||
same as ":ab", but for Command-line mode only. {not
|
||||
in Vi}
|
||||
|
||||
*:cuna* *:cunabbrev*
|
||||
@ -908,19 +910,20 @@ See |:verbose-cmd| for more information.
|
||||
in Vi}
|
||||
|
||||
*:cnorea* *:cnoreabbrev*
|
||||
:cnorea[bbrev] [lhs] [rhs]
|
||||
:cnorea[bbrev] [<expr>] [lhs] [rhs]
|
||||
same as ":ab", but for Command-line mode only and no
|
||||
remapping for this {rhs} {not in Vi}
|
||||
|
||||
*:ia* *:iabbrev*
|
||||
:ia[bbrev] [lhs] [rhs] same as ":ab", but for Insert mode only. {not in Vi}
|
||||
:ia[bbrev] [<expr>] [lhs] [rhs]
|
||||
same as ":ab", but for Insert mode only. {not in Vi}
|
||||
|
||||
*:iuna* *:iunabbrev*
|
||||
:iuna[bbrev] {lhs} same as ":una", but for insert mode only. {not in
|
||||
Vi}
|
||||
|
||||
*:inorea* *:inoreabbrev*
|
||||
:inorea[bbrev] [lhs] [rhs]
|
||||
:inorea[bbrev] [<expr>] [lhs] [rhs]
|
||||
same as ":ab", but for Insert mode only and no
|
||||
remapping for this {rhs} {not in Vi}
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
*options.txt* For Vim version 7.0e. Last change: 2006 Apr 18
|
||||
*options.txt* For Vim version 7.0e. Last change: 2006 Apr 20
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -6684,6 +6684,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
this. 'textwidth' is set to 0 when the 'paste' option is set. When
|
||||
'textwidth' is zero, 'wrapmargin' may be used. See also
|
||||
'formatoptions' and |ins-textwidth|.
|
||||
When 'formatexpr' is set it will be used to break the line.
|
||||
NOTE: This option is set to 0 when 'compatible' is set.
|
||||
|
||||
*'thesaurus'* *'tsr'*
|
||||
|
@ -1,4 +1,4 @@
|
||||
*spell.txt* For Vim version 7.0e. Last change: 2006 Apr 12
|
||||
*spell.txt* For Vim version 7.0e. Last change: 2006 Apr 20
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -161,6 +161,10 @@ z= For the word under/after the cursor suggest correctly
|
||||
mode and when there are no line wraps). Click on the
|
||||
first line (the header) to cancel.
|
||||
|
||||
The suggestions listed normally replace a highlighted
|
||||
bad word. Sometimes they include other text, in that
|
||||
case the replaced text is also listed after a "<".
|
||||
|
||||
If a count is used that suggestion is used, without
|
||||
prompting. For example, "1z=" always takes the first
|
||||
suggestion.
|
||||
|
@ -1,4 +1,4 @@
|
||||
*syntax.txt* For Vim version 7.0e. Last change: 2006 Apr 15
|
||||
*syntax.txt* For Vim version 7.0e. Last change: 2006 Apr 20
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -1606,12 +1606,22 @@ instead, and the name of your source file should be *.pike
|
||||
|
||||
LUA *lua.vim* *ft-lua-syntax*
|
||||
|
||||
This syntax file may be used for Lua 4.0 and Lua 5.0 (default). If you are
|
||||
programming in Lua 4.0, use this: >
|
||||
This syntax file may be used for Lua 4.0, Lua 5.0 or Lua 5.1 (the latter is
|
||||
the default). You can select one of these versions using the global variables
|
||||
lua_version and lua_subversion. For example, to activate Lua
|
||||
4.0 syntax highlighting, use this command: >
|
||||
|
||||
:let lua_version = 4
|
||||
|
||||
If lua_version variable doesn't exist, it is set to 5.
|
||||
If you are using Lua 5.0, use these commands: >
|
||||
|
||||
:let lua_version = 5
|
||||
:let lua_subversion = 0
|
||||
|
||||
To restore highlighting for Lua 5.1: >
|
||||
|
||||
:let lua_version = 5
|
||||
:let lua_subversion = 1
|
||||
|
||||
|
||||
MAIL *mail.vim* *ft-mail.vim*
|
||||
@ -2765,7 +2775,7 @@ DEFINING KEYWORDS *:syn-keyword*
|
||||
:syntax keyword Type contained int long char
|
||||
:syntax keyword Type int long contained char
|
||||
:syntax keyword Type int long char contained
|
||||
< *E747*
|
||||
< *E789*
|
||||
When you have a keyword with an optional tail, like Ex commands in
|
||||
Vim, you can put the optional characters inside [], to define all the
|
||||
variations at once: >
|
||||
|
@ -3959,7 +3959,6 @@ E744 netbeans.txt /*E744*
|
||||
E745 eval.txt /*E745*
|
||||
E746 eval.txt /*E746*
|
||||
E747 editing.txt /*E747*
|
||||
E747 syntax.txt /*E747*
|
||||
E748 repeat.txt /*E748*
|
||||
E749 eval.txt /*E749*
|
||||
E75 vi_diff.txt /*E75*
|
||||
@ -4005,6 +4004,7 @@ E785 eval.txt /*E785*
|
||||
E786 eval.txt /*E786*
|
||||
E787 diff.txt /*E787*
|
||||
E788 autocmd.txt /*E788*
|
||||
E789 syntax.txt /*E789*
|
||||
E79 message.txt /*E79*
|
||||
E80 message.txt /*E80*
|
||||
E800 arabic.txt /*E800*
|
||||
@ -4264,6 +4264,7 @@ W16 message.txt /*W16*
|
||||
W17 arabic.txt /*W17*
|
||||
W18 syntax.txt /*W18*
|
||||
WORD motion.txt /*WORD*
|
||||
WWW intro.txt /*WWW*
|
||||
Win32 os_win32.txt /*Win32*
|
||||
WinEnter autocmd.txt /*WinEnter*
|
||||
WinLeave autocmd.txt /*WinLeave*
|
||||
@ -5314,6 +5315,7 @@ ft-python-syntax syntax.txt /*ft-python-syntax*
|
||||
ft-quake-syntax syntax.txt /*ft-quake-syntax*
|
||||
ft-readline-syntax syntax.txt /*ft-readline-syntax*
|
||||
ft-rexx-syntax syntax.txt /*ft-rexx-syntax*
|
||||
ft-ruby-omni insert.txt /*ft-ruby-omni*
|
||||
ft-ruby-syntax syntax.txt /*ft-ruby-syntax*
|
||||
ft-scheme-syntax syntax.txt /*ft-scheme-syntax*
|
||||
ft-sdl-syntax syntax.txt /*ft-sdl-syntax*
|
||||
|
@ -1,4 +1,4 @@
|
||||
*todo.txt* For Vim version 7.0e. Last change: 2006 Apr 19
|
||||
*todo.txt* For Vim version 7.0e. Last change: 2006 Apr 20
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -30,14 +30,13 @@ be worked on, but only if you sponsor Vim development. See |sponsor|.
|
||||
*known-bugs*
|
||||
-------------------- Known bugs and current work -----------------------
|
||||
|
||||
Hang in omni completion when 'lines' is 6. (dtsfan)
|
||||
For a tooltip of at GUI tab label we need a new field. Also 'guitabtip'?
|
||||
|
||||
Crash in "z=" when the change triggers checking out the file, FileChangedRO
|
||||
event. Problem in move_lines()? FileChangedShell also involved? (Neil Bird)
|
||||
Added a few checks for valid buffer, did that help?
|
||||
|
||||
Check findoption() return value.
|
||||
Other coverity false positives?
|
||||
Fix coverity false positives?
|
||||
|
||||
Add more tests for all new functionality in Vim 7. Especially new functions.
|
||||
|
||||
@ -1086,6 +1085,7 @@ User Friendlier:
|
||||
Tab pages:
|
||||
9 GUI implementation for the tab pages line for other systems.
|
||||
8 Make GUI menu in tab pages line configurable. Like the popup menu.
|
||||
8 balloons for the tab page labels that are shortened to show the full path.
|
||||
8 :tabmove +N move tab page N pages forward
|
||||
8 :tabmove -N move tab page N pages backward
|
||||
7 :tabdup duplicate the tab with all its windows.
|
||||
@ -2009,7 +2009,8 @@ Autocommands:
|
||||
Error - When an error happens
|
||||
NormalEnter - Entering Normal mode
|
||||
ReplaceEnter - Entering Replace mode
|
||||
CmdEnter - Entering Cmdline mode
|
||||
CmdEnter - Entering Cmdline mode (with type of cmdline to allow
|
||||
different mapping)
|
||||
VisualEnter - Entering Visual mode
|
||||
*Leave - Leaving a mode (in pair with the above *Enter)
|
||||
VimLeaveCheck - Before Vim decides to exit, so that it can be cancelled
|
||||
|
@ -1,4 +1,4 @@
|
||||
*version7.txt* For Vim version 7.0e. Last change: 2006 Apr 19
|
||||
*version7.txt* For Vim version 7.0e. Last change: 2006 Apr 20
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -243,6 +243,7 @@ Currently supported languages:
|
||||
(X)HTML with CSS |ft-html-omni|
|
||||
JavaScript |ft-javascript-omni|
|
||||
Python
|
||||
Ruby |ft-ruby-omni|
|
||||
XML |ft-xml-omni|
|
||||
any language wih syntax highligting |ft-syntax-omni|
|
||||
|
||||
@ -2559,4 +2560,14 @@ The taglist() function could hang on a tags line with a non-ASCII character.
|
||||
Win32: When 'encoding' differs from the system encoding tab page labels with
|
||||
non-ASCII characters looked wrong. (Yegappan Lakshmanan)
|
||||
|
||||
Motif: building failed when Xm/Notebook.h doesn't exist. Added a configure
|
||||
check, disable GUI tabline when it's missing.
|
||||
|
||||
Mac: When compiled without multi-byte feature the clipboard didn't work.
|
||||
|
||||
It was possible to switch to another tab page when the cmdline window is open.
|
||||
|
||||
Completion could hang when 'lines' is 6 and a preview window was opened.
|
||||
|
||||
|
||||
vim:tw=78:ts=8:ft=help:norl:
|
||||
|
@ -31,7 +31,7 @@
|
||||
! REP l·l l
|
||||
|
||||
*** ca_ES.orig.dic Sat Aug 13 18:33:44 2005
|
||||
--- ca_ES.dic Thu Jan 12 21:55:39 2006
|
||||
--- ca_ES.dic Thu Apr 20 20:31:16 2006
|
||||
***************
|
||||
*** 1,2 ****
|
||||
! 149661
|
||||
|
@ -24,7 +24,7 @@
|
||||
+
|
||||
SFX J Y 12
|
||||
*** es_ES.orig.dic Thu Aug 25 19:19:44 2005
|
||||
--- es_ES.dic Thu Aug 25 20:18:55 2005
|
||||
--- es_ES.dic Thu Apr 20 20:30:24 2006
|
||||
***************
|
||||
*** 485,487 ****
|
||||
acercóse
|
||||
@ -74,8 +74,14 @@
|
||||
inadecuación/S
|
||||
--- 25126,25127 ----
|
||||
***************
|
||||
*** 28007,28009 ****
|
||||
librancista/S
|
||||
- líbranos
|
||||
*** 28008,28010 ****
|
||||
líbranos
|
||||
--- 27999,28000 ----
|
||||
- líbranos
|
||||
libranza/S
|
||||
--- 28000,28001 ----
|
||||
***************
|
||||
*** 48480,48481 ****
|
||||
--- 48471,48473 ----
|
||||
xilotila/S
|
||||
+ y
|
||||
ya
|
||||
|
@ -1,9 +1,12 @@
|
||||
" Vim syntax file
|
||||
" Language: BIND 8.x zone files (RFC1035)
|
||||
" Maintainer: glory hump <rnd@web-drive.ru>
|
||||
" Last change: Thu Apr 26 02:16:18 SAMST 2001
|
||||
" Filenames: /var/named/*
|
||||
" URL: http://rnd.web-drive.ru/vim/syntax/bindzone.vim
|
||||
" Language: BIND zone files (RFC1035)
|
||||
" Maintainer: Julian Mehnle <julian@mehnle.net>
|
||||
" URL: http://www.mehnle.net/source/odds+ends/vim/syntax/
|
||||
" Last Change: Thu 2006-04-20 12:30:45 UTC
|
||||
"
|
||||
" Based on an earlier version by Вячеслав Горбанев (Slava Gorbanev), with
|
||||
" heavy modifications.
|
||||
"
|
||||
" $Id$
|
||||
|
||||
" For version 5.x: Clear all syntax items
|
||||
@ -16,54 +19,55 @@ endif
|
||||
|
||||
syn case match
|
||||
|
||||
if version >= 600
|
||||
setlocal iskeyword=.,-,48-58,A-Z,a-z,_
|
||||
else
|
||||
set iskeyword=.,-,48-58,A-Z,a-z,_
|
||||
endif
|
||||
" Directives
|
||||
syn region zoneRRecord start=/^/ end=/$/ contains=zoneOwnerName,zoneSpecial,zoneTTL,zoneClass,zoneRRType,zoneComment,zoneUnknown
|
||||
|
||||
syn match zoneDirective /^\$ORIGIN\s\+/ nextgroup=zoneOrigin,zoneUnknown
|
||||
syn match zoneDirective /^\$TTL\s\+/ nextgroup=zoneNumber,zoneUnknown
|
||||
syn match zoneDirective /^\$INCLUDE\s\+/ nextgroup=zoneText,zoneUnknown
|
||||
syn match zoneDirective /^\$GENERATE\s/
|
||||
|
||||
" Master File Format (rfc 1035)
|
||||
syn match zoneUnknown contained /\S\+/
|
||||
|
||||
" directives
|
||||
syn region zoneRRecord start=+^+ end=+$+ contains=zoneLHSDomain,zoneLHSIP,zoneIllegalDom,zoneWhitespace,zoneComment,zoneParen,zoneSpecial
|
||||
syn match zoneDirective /\$ORIGIN\s\+/ nextgroup=zoneDomain,zoneIllegalDom
|
||||
syn match zoneDirective /\$TTL\s\+/ nextgroup=zoneTTL
|
||||
syn match zoneDirective /\$INCLUDE\s\+/
|
||||
syn match zoneDirective /\$GENERATE\s/
|
||||
syn match zoneOwnerName contained /^[^[:space:]!"#$%&'()*+,\/:;<=>?@[\]\^`{|}~]\+\(\s\|;\)\@=/ nextgroup=zoneTTL,zoneClass,zoneRRType skipwhite
|
||||
syn match zoneOrigin contained /[^[:space:]!"#$%&'()*+,\/:;<=>?@[\]\^`{|}~]\+\(\s\|;\|$\)\@=/
|
||||
syn match zoneDomain contained /[^[:space:]!"#$%&'()*+,\/:;<=>?@[\]\^`{|}~]\+\(\s\|;\|$\)\@=/
|
||||
|
||||
syn match zoneWhitespace contained /^\s\+/ nextgroup=zoneTTL,zoneClass,zoneRRType
|
||||
syn match zoneError "\s\+$"
|
||||
syn match zoneSpecial contained /^[@.]\s\+/ nextgroup=zoneTTL,zoneClass,zoneRRType
|
||||
syn match zoneSpecial contained /@$/
|
||||
syn match zoneSpecial contained /^[@*.]\s/
|
||||
syn match zoneTTL contained /\<\d[0-9HhWwDd]*\>/ nextgroup=zoneClass,zoneRRType skipwhite
|
||||
syn keyword zoneClass contained IN CHAOS nextgroup=zoneRRType,zoneTTL skipwhite
|
||||
syn keyword zoneRRType contained A AAAA CNAME HINFO MX NS PTR SOA SRV TXT nextgroup=zoneRData skipwhite
|
||||
syn match zoneRData contained /[^;]*/ contains=zoneDomain,zoneIPAddr,zoneIP6Addr,zoneText,zoneNumber,zoneParen,zoneUnknown
|
||||
|
||||
" domains and IPs
|
||||
syn match zoneLHSDomain contained /^[-0-9A-Za-z.]\+\s\+/ nextgroup=zoneTTL,zoneClass,zoneRRType
|
||||
syn match zoneLHSIP contained /^[0-9]\{1,3}\(\.[0-9]\{1,3}\)\{,3}\s\+/ nextgroup=zoneTTL,zoneClass,zoneRRType
|
||||
syn match zoneIPaddr contained /\<[0-9]\{1,3}\(\.[0-9]\{1,3}\)\{,3}\>/
|
||||
syn match zoneDomain contained /\<[0-9A-Za-z][-0-9A-Za-z.]\+\>/
|
||||
syn match zoneIPAddr contained /\<[0-9]\{1,3}\(\.[0-9]\{1,3}\)\{,3}\>/
|
||||
|
||||
syn match zoneIllegalDom contained /\S*[^-A-Za-z0-9.[:space:]]\S*\>/
|
||||
"syn match zoneIllegalDom contained /[0-9]\S*[-A-Za-z]\S*/
|
||||
" Plain IPv6 address IPv6-embedded-IPv4 address
|
||||
" 1111:2:3:4:5:6:7:8 1111:2:3:4:5:6:127.0.0.1
|
||||
syn match zoneIP6Addr contained /\<\(\x\{1,4}:\)\{6}\(\x\{1,4}:\x\{1,4}\|\([0-2]\?\d\{1,2}\.\)\{3}[0-2]\?\d\{1,2}\)\>/
|
||||
" ::[...:]8 ::[...:]127.0.0.1
|
||||
syn match zoneIP6Addr contained /\s\@<=::\(\(\x\{1,4}:\)\{,6}\x\{1,4}\|\(\x\{1,4}:\)\{,5}\([0-2]\?\d\{1,2}\.\)\{3}[0-2]\?\d\{1,2}\)\>/
|
||||
" 1111::[...:]8 1111::[...:]127.0.0.1
|
||||
syn match zoneIP6Addr contained /\<\(\x\{1,4}:\)\{1}:\(\(\x\{1,4}:\)\{,5}\x\{1,4}\|\(\x\{1,4}:\)\{,4}\([0-2]\?\d\{1,2}\.\)\{3}[0-2]\?\d\{1,2}\)\>/
|
||||
" 1111:2::[...:]8 1111:2::[...:]127.0.0.1
|
||||
syn match zoneIP6Addr contained /\<\(\x\{1,4}:\)\{2}:\(\(\x\{1,4}:\)\{,4}\x\{1,4}\|\(\x\{1,4}:\)\{,3}\([0-2]\?\d\{1,2}\.\)\{3}[0-2]\?\d\{1,2}\)\>/
|
||||
" 1111:2:3::[...:]8 1111:2:3::[...:]127.0.0.1
|
||||
syn match zoneIP6Addr contained /\<\(\x\{1,4}:\)\{3}:\(\(\x\{1,4}:\)\{,3}\x\{1,4}\|\(\x\{1,4}:\)\{,2}\([0-2]\?\d\{1,2}\.\)\{3}[0-2]\?\d\{1,2}\)\>/
|
||||
" 1111:2:3:4::[...:]8 1111:2:3:4::[...:]127.0.0.1
|
||||
syn match zoneIP6Addr contained /\<\(\x\{1,4}:\)\{4}:\(\(\x\{1,4}:\)\{,2}\x\{1,4}\|\(\x\{1,4}:\)\{,1}\([0-2]\?\d\{1,2}\.\)\{3}[0-2]\?\d\{1,2}\)\>/
|
||||
" 1111:2:3:4:5::[...:]8 1111:2:3:4:5::127.0.0.1
|
||||
syn match zoneIP6Addr contained /\<\(\x\{1,4}:\)\{5}:\(\(\x\{1,4}:\)\{,1}\x\{1,4}\|\([0-2]\?\d\{1,2}\.\)\{3}[0-2]\?\d\{1,2}\)\>/
|
||||
" 1111:2:3:4:5:6::8 -
|
||||
syn match zoneIP6Addr contained /\<\(\x\{1,4}:\)\{6}:\x\{1,4}\>/
|
||||
" 1111[:...]:: -
|
||||
syn match zoneIP6Addr contained /\<\(\x\{1,4}:\)\{1,7}:\(\s\|;\|$\)\@=/
|
||||
|
||||
" keywords
|
||||
syn keyword zoneClass IN CHAOS nextgroup=zoneRRType
|
||||
syn match zoneText contained /"\([^"\\]\|\\.\)*"\(\s\|;\|$\)\@=/
|
||||
syn match zoneNumber contained /\<[0-9]\+\(\s\|;\|$\)\@=/
|
||||
syn match zoneSerial contained /\<[0-9]\{9,10}\(\s\|;\|$\)\@=/
|
||||
|
||||
syn match zoneTTL contained /\<[0-9HhWwDd]\+\s\+/ nextgroup=zoneClass,zoneRRType
|
||||
syn match zoneRRType contained /\s*\<\(NS\|HINFO\)\s\+/ nextgroup=zoneSpecial,zoneDomain
|
||||
syn match zoneRRType contained /\s*\<CNAME\s\+/ nextgroup=zoneDomain,zoneSpecial
|
||||
syn match zoneRRType contained /\s*\<SOA\s\+/ nextgroup=zoneDomain,zoneIllegalDom
|
||||
syn match zoneRRType contained /\s*\<PTR\s\+/ nextgroup=zoneDomain,zoneIllegalDom
|
||||
syn match zoneRRType contained /\s*\<MX\s\+/ nextgroup=zoneMailPrio
|
||||
syn match zoneRRType contained /\s*\<A\s\+/ nextgroup=zoneIPaddr,zoneIllegalDom
|
||||
|
||||
" FIXME: catchup serial number
|
||||
syn match zoneSerial contained /\<[0-9]\{9}\>/
|
||||
|
||||
syn match zoneMailPrio contained /\<[0-9]\+\s*/ nextgroup=zoneDomain,zoneIllegalDom
|
||||
syn match zoneErrParen /)/
|
||||
syn region zoneParen contained start=+(+ end=+)+ contains=zoneSerial,zoneTTL,zoneComment
|
||||
syn match zoneComment ";.*"
|
||||
syn match zoneErrParen /)/
|
||||
syn region zoneParen contained start="(" end=")" contains=zoneSerial,zoneNumber,zoneComment
|
||||
syn match zoneComment /;.*/
|
||||
|
||||
" Define the default highlighting.
|
||||
" For version 5.7 and earlier: only when not done already
|
||||
@ -76,23 +80,31 @@ if version >= 508 || !exists("did_bind_zone_syn_inits")
|
||||
command -nargs=+ HiLink hi def link <args>
|
||||
endif
|
||||
|
||||
HiLink zoneComment Comment
|
||||
HiLink zoneDirective Macro
|
||||
HiLink zoneLHSDomain Statement
|
||||
HiLink zoneLHSIP Statement
|
||||
HiLink zoneClass Include
|
||||
HiLink zoneSpecial Special
|
||||
HiLink zoneRRType Type
|
||||
HiLink zoneError Error
|
||||
HiLink zoneErrParen Error
|
||||
HiLink zoneIllegalDom Error
|
||||
HiLink zoneSerial Todo
|
||||
HiLink zoneIPaddr Number
|
||||
HiLink zoneDomain Identifier
|
||||
HiLink zoneDirective Macro
|
||||
|
||||
HiLink zoneUnknown Error
|
||||
|
||||
HiLink zoneOrigin Statement
|
||||
HiLink zoneOwnerName Statement
|
||||
HiLink zoneDomain Identifier
|
||||
|
||||
HiLink zoneSpecial Special
|
||||
HiLink zoneTTL Constant
|
||||
HiLink zoneClass Include
|
||||
HiLink zoneRRType Type
|
||||
|
||||
HiLink zoneIPAddr Number
|
||||
HiLink zoneIP6Addr Number
|
||||
HiLink zoneText String
|
||||
HiLink zoneNumber Number
|
||||
HiLink zoneSerial Special
|
||||
|
||||
HiLink zoneErrParen Error
|
||||
HiLink zoneComment Comment
|
||||
|
||||
delcommand HiLink
|
||||
endif
|
||||
|
||||
let b:current_syntax = "bindzone"
|
||||
|
||||
" vim: ts=17
|
||||
" vim:sts=2 sw=2
|
||||
|
@ -1,10 +1,12 @@
|
||||
" Vim syntax file
|
||||
" Language: crontab
|
||||
" Maintainer: John Hoelzel johnh51@users.sourceforge.net
|
||||
" Maintainer: David Necas (Yeti) <yeti@physics.muni.cz>
|
||||
" Last Change: 2005-04-26
|
||||
" Filenames: /tmp/crontab.* used by "crontab -e"
|
||||
" URL: http://trific.ath.cx/Ftp/vim/syntax/crontab.vim
|
||||
" Language: crontab
|
||||
" Maintainer: David Necas (Yeti) <yeti@physics.muni.cz>
|
||||
" Original Maintainer: John Hoelzel johnh51@users.sourceforge.net
|
||||
" License: This file can be redistribued and/or modified under the same terms
|
||||
" as Vim itself.
|
||||
" Filenames: /tmp/crontab.* used by "crontab -e"
|
||||
" URL: http://trific.ath.cx/Ftp/vim/syntax/crontab.vim
|
||||
" Last Change: 2006-04-20
|
||||
"
|
||||
" crontab line format:
|
||||
" Minutes Hours Days Months Days_of_Week Commands # comments
|
||||
@ -17,24 +19,23 @@ elseif exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
syntax match crontabMin "^\s*[-0-9/,.*]\+" nextgroup=crontabHr skipwhite
|
||||
syntax match crontabHr "\s[-0-9/,.*]\+" nextgroup=crontabDay skipwhite contained
|
||||
syntax match crontabDay "\s[-0-9/,.*]\+" nextgroup=crontabMnth skipwhite contained
|
||||
syntax match crontabMin "^\s*[-0-9/,.*]\+" nextgroup=crontabHr skipwhite
|
||||
syntax match crontabHr "\s[-0-9/,.*]\+" nextgroup=crontabDay skipwhite contained
|
||||
syntax match crontabDay "\s[-0-9/,.*]\+" nextgroup=crontabMnth skipwhite contained
|
||||
|
||||
syntax match crontabMnth "\s[-a-z0-9/,.*]\+" nextgroup=crontabDow skipwhite contained
|
||||
syntax keyword crontabMnth12 contained jan feb mar apr may jun jul aug sep oct nov dec
|
||||
syntax match crontabMnth "\s[-a-z0-9/,.*]\+" nextgroup=crontabDow skipwhite contained
|
||||
syntax keyword crontabMnth12 contained jan feb mar apr may jun jul aug sep oct nov dec
|
||||
|
||||
syntax match crontabDow "\s[-a-z0-9/,.*]\+" nextgroup=crontabCmd skipwhite contained
|
||||
syntax keyword crontabDow7 contained sun mon tue wed thu fri sat
|
||||
syntax match crontabDow "\s[-a-z0-9/,.*]\+" nextgroup=crontabCmd skipwhite contained
|
||||
syntax keyword crontabDow7 contained sun mon tue wed thu fri sat
|
||||
|
||||
" syntax region crontabCmd start="\<[a-z0-9\/\(]" end="$" nextgroup=crontabCmnt skipwhite contained contains=crontabCmnt keepend
|
||||
syntax region crontabCmd start="\S" end="$" skipwhite contained keepend contains=crontabPercent
|
||||
syntax match crontabCmnt "^\s*#.*"
|
||||
syntax match crontabPercent "[^\\]%.*"lc=1 contained
|
||||
|
||||
syntax region crontabCmd start="\S" end="$" nextgroup=crontabCmnt skipwhite contained keepend
|
||||
syntax match crontabCmnt "^\s*#.*"
|
||||
syntax match crontabNick "^\s*@\(reboot\|yearly\|annually\|monthly\|weekly\|daily\|midnight\|hourly\)\>" nextgroup=crontabCmd skipwhite
|
||||
|
||||
syntax match crontabNick "^\s*@\(reboot\|yearly\|annually\|monthly\|weekly\|daily\|midnight\|hourly\)\>" nextgroup=crontabCmd skipwhite
|
||||
|
||||
syntax match crontabVar "^\s*\k\w*\s*="me=e-1
|
||||
syntax match crontabVar "^\s*\k\w*\s*="me=e-1
|
||||
|
||||
" Define the default highlighting.
|
||||
" For version 5.7 and earlier: only when not done already
|
||||
@ -63,9 +64,10 @@ if version >= 508 || !exists("did_crontab_syn_inits")
|
||||
|
||||
HiLink crontabNick Special
|
||||
HiLink crontabVar Identifier
|
||||
HiLink crontabPercent Special
|
||||
|
||||
" comment out next line for to suppress unix commands coloring.
|
||||
HiLink crontabCmd Type
|
||||
HiLink crontabCmd Statement
|
||||
|
||||
HiLink crontabCmnt Comment
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
" Vim syntax file
|
||||
" Language: Inform
|
||||
" Maintainer: Stephen Thomas (informvim@stephenthomas.uklinux.net)
|
||||
" URL: http://www.stephenthomas.uklinux.net/informvim
|
||||
" Last Change: 2004 May 16
|
||||
" Maintainer: Stephen Thomas (stephen@gowarthomas.com)
|
||||
" URL: http://www.gowarthomas.com/informvim
|
||||
" Last Change: 2006 April 20
|
||||
|
||||
" Quit when a syntax file was already loaded
|
||||
if version < 600
|
||||
|
@ -1,297 +1,299 @@
|
||||
" Vim syntax file
|
||||
" Language: Lua 4.0, Lua 5.0 and Lua 5.1
|
||||
" Maintainer: Marcus Aurelius Farias <marcus.cf 'at' bol.com.br>
|
||||
" First Author: Carlos Augusto Teixeira Mendes <cmendes 'at' inf puc-rio br>
|
||||
" Last Change: 2006 Apr. 19
|
||||
" Options: lua_version = 4 or 5
|
||||
" lua_subversion = 0 (4.0, 5.0) or 1 (5.1)
|
||||
" default 5.1
|
||||
|
||||
" For version 5.x: Clear all syntax items
|
||||
" For version 6.x: Quit when a syntax file was already loaded
|
||||
if version < 600
|
||||
syntax clear
|
||||
elseif exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
if !exists("lua_version")
|
||||
" Default is lua 5.1
|
||||
let lua_version = 5
|
||||
let lua_subversion = 1
|
||||
elseif !exists("lua_subversion")
|
||||
" lua_version exists, but lua_subversion doesn't. So, set it to 0
|
||||
let lua_subversion = 0
|
||||
endif
|
||||
|
||||
syn case match
|
||||
|
||||
" syncing method
|
||||
syn sync minlines=100
|
||||
|
||||
" Comments
|
||||
syn keyword luaTodo contained TODO FIXME XXX
|
||||
syn match luaComment "--.*$" contains=luaTodo
|
||||
if lua_version == 5 && lua_subversion == 0
|
||||
syn region luaComment matchgroup=luaComment start="--\[\[" end="\]\]" contains=luaTodo,luaInnerComment
|
||||
syn region luaInnerComment contained transparent start="\[\[" end="\]\]"
|
||||
elseif lua_version > 5 || (lua_version == 5 && lua_subversion >= 1)
|
||||
" Comments in Lua 5.1: [[ ... ]], [=[ ... ]=], [===[ ... ]===], etc.
|
||||
syn region luaComment matchgroup=luaComment start="--\[\z(=*\)\[" end="\]\z1\]"
|
||||
endif
|
||||
|
||||
" First line may start with #!
|
||||
syn match luaComment "\%^#!.*"
|
||||
|
||||
" catch errors caused by wrong parenthesis and wrong curly brackets or
|
||||
" keywords placed outside their respective blocks
|
||||
|
||||
syn region luaParen transparent start='(' end=')' contains=ALLBUT,luaError,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaCondStart,luaBlock,luaRepeatBlock,luaRepeat,luaStatement
|
||||
syn match luaError ")"
|
||||
syn match luaError "}"
|
||||
syn match luaError "\<\%(end\|else\|elseif\|then\|until\|in\)\>"
|
||||
|
||||
" Function declaration
|
||||
syn region luaFunctionBlock transparent matchgroup=luaFunction start="\<function\>" end="\<end\>" contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaRepeat
|
||||
|
||||
" if then else elseif end
|
||||
syn keyword luaCond contained else
|
||||
|
||||
" then ... end
|
||||
syn region luaCondEnd contained transparent matchgroup=luaCond start="\<then\>" end="\<end\>" contains=ALLBUT,luaTodo,luaSpecial,luaRepeat
|
||||
|
||||
" elseif ... then
|
||||
syn region luaCondElseif contained transparent matchgroup=luaCond start="\<elseif\>" end="\<then\>" contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaRepeat
|
||||
|
||||
" if ... then
|
||||
syn region luaCondStart transparent matchgroup=luaCond start="\<if\>" end="\<then\>"me=e-4 contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaRepeat nextgroup=luaCondEnd skipwhite skipempty
|
||||
|
||||
" do ... end
|
||||
syn region luaBlock transparent matchgroup=luaStatement start="\<do\>" end="\<end\>" contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaRepeat
|
||||
|
||||
" repeat ... until
|
||||
syn region luaRepeatBlock transparent matchgroup=luaRepeat start="\<repeat\>" end="\<until\>" contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaRepeat
|
||||
|
||||
" while ... do
|
||||
syn region luaRepeatBlock transparent matchgroup=luaRepeat start="\<while\>" end="\<do\>"me=e-2 contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaRepeat nextgroup=luaBlock skipwhite skipempty
|
||||
|
||||
" for ... do and for ... in ... do
|
||||
syn region luaRepeatBlock transparent matchgroup=luaRepeat start="\<for\>" end="\<do\>"me=e-2 contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd nextgroup=luaBlock skipwhite skipempty
|
||||
|
||||
" Following 'else' example. This is another item to those
|
||||
" contains=ALLBUT,... because only the 'for' luaRepeatBlock contains it.
|
||||
syn keyword luaRepeat contained in
|
||||
|
||||
" other keywords
|
||||
syn keyword luaStatement return local break
|
||||
syn keyword luaOperator and or not
|
||||
syn keyword luaConstant nil
|
||||
if lua_version > 4
|
||||
syn keyword luaConstant true false
|
||||
endif
|
||||
|
||||
" Strings
|
||||
syn match luaSpecial contained "\\[\\abfnrtv\'\"[\]]\|\\\d\{,3}"
|
||||
syn region luaString start=+'+ end=+'+ skip=+\\\\\|\\'+ contains=luaSpecial
|
||||
syn region luaString start=+"+ end=+"+ skip=+\\\\\|\\"+ contains=luaSpecial
|
||||
" Nested strings
|
||||
if (lua_version == 5 && lua_subversion == 0) || lua_version < 5
|
||||
syn region luaString2 matchgroup=luaString start=+\[\[+ end=+\]\]+ contains=luaString2
|
||||
elseif lua_version > 5 || (lua_version == 5 && lua_subversion >= 1)
|
||||
syn region luaString2 matchgroup=luaString start="\[\z(=*\)\[" end="\]\z1\]"
|
||||
endif
|
||||
|
||||
" integer number
|
||||
syn match luaNumber "\<[0-9]\+\>"
|
||||
" floating point number, with dot, optional exponent
|
||||
syn match luaFloat "\<[0-9]\+\.[0-9]*\%(e[-+]\=[0-9]\+\)\=\>"
|
||||
" floating point number, starting with a dot, optional exponent
|
||||
syn match luaFloat "\.[0-9]\+\%(e[-+]\=[0-9]\+\)\=\>"
|
||||
" floating point number, without dot, with exponent
|
||||
syn match luaFloat "\<[0-9]\+e[-+]\=[0-9]\+\>"
|
||||
|
||||
" tables
|
||||
syn region luaTableBlock transparent matchgroup=luaTable start="{" end="}" contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaCondStart,luaBlock,luaRepeatBlock,luaRepeat,luaStatement
|
||||
|
||||
syn keyword luaFunc assert collectgarbage dofile error gcinfo next
|
||||
syn keyword luaFunc print rawget rawset tonumber tostring type _VERSION
|
||||
|
||||
if lua_version == 4
|
||||
syn keyword luaFunc _ALERT _ERRORMESSAGE
|
||||
syn keyword luaFunc call copytagmethods dostring
|
||||
syn keyword luaFunc foreach foreachi getglobal getn
|
||||
syn keyword luaFunc gettagmethod globals newtag
|
||||
syn keyword luaFunc setglobal settag settagmethod sort
|
||||
syn keyword luaFunc tag tinsert tremove
|
||||
syn keyword luaFunc _INPUT _OUTPUT _STDIN _STDOUT _STDERR
|
||||
syn keyword luaFunc openfile closefile flush seek
|
||||
syn keyword luaFunc setlocale execute remove rename tmpname
|
||||
syn keyword luaFunc getenv date clock exit
|
||||
syn keyword luaFunc readfrom writeto appendto read write
|
||||
syn keyword luaFunc PI abs sin cos tan asin
|
||||
syn keyword luaFunc acos atan atan2 ceil floor
|
||||
syn keyword luaFunc mod frexp ldexp sqrt min max log
|
||||
syn keyword luaFunc log10 exp deg rad random
|
||||
syn keyword luaFunc randomseed strlen strsub strlower strupper
|
||||
syn keyword luaFunc strchar strrep ascii strbyte
|
||||
syn keyword luaFunc format strfind gsub
|
||||
syn keyword luaFunc getinfo getlocal setlocal setcallhook setlinehook
|
||||
elseif lua_version == 5
|
||||
" Not sure if all these functions need to be highlighted...
|
||||
syn keyword luaFunc _G getfenv getmetatable ipairs loadfile
|
||||
syn keyword luaFunc loadstring pairs pcall rawequal
|
||||
syn keyword luaFunc require setfenv setmetatable unpack xpcall
|
||||
if lua_subversion == 0
|
||||
syn keyword luaFunc loadlib LUA_PATH _LOADED _REQUIREDNAME
|
||||
elseif lua_subversion == 1
|
||||
syn keyword luaFunc load module select
|
||||
syn match luaFunc /package\.cpath/
|
||||
syn match luaFunc /package\.loaded/
|
||||
syn match luaFunc /package\.loadlib/
|
||||
syn match luaFunc /package\.path/
|
||||
syn match luaFunc /package\.preload/
|
||||
syn match luaFunc /package\.seeall/
|
||||
syn match luaFunc /coroutine\.running/
|
||||
endif
|
||||
syn match luaFunc /coroutine\.create/
|
||||
syn match luaFunc /coroutine\.resume/
|
||||
syn match luaFunc /coroutine\.status/
|
||||
syn match luaFunc /coroutine\.wrap/
|
||||
syn match luaFunc /coroutine\.yield/
|
||||
syn match luaFunc /string\.byte/
|
||||
syn match luaFunc /string\.char/
|
||||
syn match luaFunc /string\.dump/
|
||||
syn match luaFunc /string\.find/
|
||||
syn match luaFunc /string\.len/
|
||||
syn match luaFunc /string\.lower/
|
||||
syn match luaFunc /string\.rep/
|
||||
syn match luaFunc /string\.sub/
|
||||
syn match luaFunc /string\.upper/
|
||||
syn match luaFunc /string\.format/
|
||||
syn match luaFunc /string\.gsub/
|
||||
if lua_subversion == 0
|
||||
syn match luaFunc /string\.gfind/
|
||||
elseif lua_subversion == 1
|
||||
syn match luaFunc /string\.gmatch/
|
||||
syn match luaFunc /string\.match/
|
||||
syn match luaFunc /string\.reverse/
|
||||
syn match luaFunc /table\.maxn/
|
||||
endif
|
||||
syn match luaFunc /table\.concat/
|
||||
syn match luaFunc /table\.foreach/
|
||||
syn match luaFunc /table\.foreachi/
|
||||
syn match luaFunc /table\.getn/
|
||||
syn match luaFunc /table\.sort/
|
||||
syn match luaFunc /table\.insert/
|
||||
syn match luaFunc /table\.remove/
|
||||
syn match luaFunc /table\.setn/
|
||||
syn match luaFunc /math\.abs/
|
||||
syn match luaFunc /math\.acos/
|
||||
syn match luaFunc /math\.asin/
|
||||
syn match luaFunc /math\.atan/
|
||||
syn match luaFunc /math\.atan2/
|
||||
syn match luaFunc /math\.ceil/
|
||||
syn match luaFunc /math\.sin/
|
||||
syn match luaFunc /math\.cos/
|
||||
syn match luaFunc /math\.tan/
|
||||
syn match luaFunc /math\.deg/
|
||||
syn match luaFunc /math\.exp/
|
||||
syn match luaFunc /math\.floor/
|
||||
syn match luaFunc /math\.log/
|
||||
syn match luaFunc /math\.log10/
|
||||
syn match luaFunc /math\.max/
|
||||
syn match luaFunc /math\.min/
|
||||
if lua_subversion == 0
|
||||
syn match luaFunc /math\.mod/
|
||||
elseif lua_subversion == 1
|
||||
syn match luaFunc /math\.fmod/
|
||||
syn match luaFunc /math\.modf/
|
||||
syn match luaFunc /math\.cosh/
|
||||
syn match luaFunc /math\.sinh/
|
||||
syn match luaFunc /math\.tanh/
|
||||
endif
|
||||
syn match luaFunc /math\.pow/
|
||||
syn match luaFunc /math\.rad/
|
||||
syn match luaFunc /math\.sqrt/
|
||||
syn match luaFunc /math\.frexp/
|
||||
syn match luaFunc /math\.ldexp/
|
||||
syn match luaFunc /math\.random/
|
||||
syn match luaFunc /math\.randomseed/
|
||||
syn match luaFunc /math\.pi/
|
||||
syn match luaFunc /io\.stdin/
|
||||
syn match luaFunc /io\.stdout/
|
||||
syn match luaFunc /io\.stderr/
|
||||
syn match luaFunc /io\.close/
|
||||
syn match luaFunc /io\.flush/
|
||||
syn match luaFunc /io\.input/
|
||||
syn match luaFunc /io\.lines/
|
||||
syn match luaFunc /io\.open/
|
||||
syn match luaFunc /io\.output/
|
||||
syn match luaFunc /io\.popen/
|
||||
syn match luaFunc /io\.read/
|
||||
syn match luaFunc /io\.tmpfile/
|
||||
syn match luaFunc /io\.type/
|
||||
syn match luaFunc /io\.write/
|
||||
syn match luaFunc /os\.clock/
|
||||
syn match luaFunc /os\.date/
|
||||
syn match luaFunc /os\.difftime/
|
||||
syn match luaFunc /os\.execute/
|
||||
syn match luaFunc /os\.exit/
|
||||
syn match luaFunc /os\.getenv/
|
||||
syn match luaFunc /os\.remove/
|
||||
syn match luaFunc /os\.rename/
|
||||
syn match luaFunc /os\.setlocale/
|
||||
syn match luaFunc /os\.time/
|
||||
syn match luaFunc /os\.tmpname/
|
||||
syn match luaFunc /debug\.debug/
|
||||
syn match luaFunc /debug\.gethook/
|
||||
syn match luaFunc /debug\.getinfo/
|
||||
syn match luaFunc /debug\.getlocal/
|
||||
syn match luaFunc /debug\.getupvalue/
|
||||
syn match luaFunc /debug\.setlocal/
|
||||
syn match luaFunc /debug\.setupvalue/
|
||||
syn match luaFunc /debug\.sethook/
|
||||
syn match luaFunc /debug\.traceback/
|
||||
if lua_subversion == 1
|
||||
syn match luaFunc /debug\.getfenv/
|
||||
syn match luaFunc /debug\.getmetatable/
|
||||
syn match luaFunc /debug\.getregistry/
|
||||
syn match luaFunc /debug\.setfenv/
|
||||
syn match luaFunc /debug\.setmetatable/
|
||||
endif
|
||||
endif
|
||||
|
||||
" Define the default highlighting.
|
||||
" For version 5.7 and earlier: only when not done already
|
||||
" For version 5.8 and later: only when an item doesn't have highlighting yet
|
||||
if version >= 508 || !exists("did_lua_syntax_inits")
|
||||
if version < 508
|
||||
let did_lua_syntax_inits = 1
|
||||
command -nargs=+ HiLink hi link <args>
|
||||
else
|
||||
command -nargs=+ HiLink hi def link <args>
|
||||
endif
|
||||
|
||||
HiLink luaStatement Statement
|
||||
HiLink luaRepeat Repeat
|
||||
HiLink luaString String
|
||||
HiLink luaString2 String
|
||||
HiLink luaNumber Number
|
||||
HiLink luaFloat Float
|
||||
HiLink luaOperator Operator
|
||||
HiLink luaConstant Constant
|
||||
HiLink luaCond Conditional
|
||||
HiLink luaFunction Function
|
||||
HiLink luaComment Comment
|
||||
HiLink luaTodo Todo
|
||||
HiLink luaTable Structure
|
||||
HiLink luaError Error
|
||||
HiLink luaSpecial SpecialChar
|
||||
HiLink luaFunc Identifier
|
||||
|
||||
delcommand HiLink
|
||||
endif
|
||||
|
||||
let b:current_syntax = "lua"
|
||||
|
||||
" vim: et ts=8
|
||||
" Vim syntax file
|
||||
" Language: Lua 4.0, Lua 5.0 and Lua 5.1
|
||||
" Maintainer: Marcus Aurelius Farias <marcus.cf 'at' bol com br>
|
||||
" First Author: Carlos Augusto Teixeira Mendes <cmendes 'at' inf puc-rio br>
|
||||
" Last Change: 2006 Apr 21
|
||||
" Options: lua_version = 4 or 5
|
||||
" lua_subversion = 0 (4.0, 5.0) or 1 (5.1)
|
||||
" default 5.1
|
||||
|
||||
" For version 5.x: Clear all syntax items
|
||||
" For version 6.x: Quit when a syntax file was already loaded
|
||||
if version < 600
|
||||
syntax clear
|
||||
elseif exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
if !exists("lua_version")
|
||||
" Default is lua 5.1
|
||||
let lua_version = 5
|
||||
let lua_subversion = 1
|
||||
elseif !exists("lua_subversion")
|
||||
" lua_version exists, but lua_subversion doesn't. So, set it to 0
|
||||
let lua_subversion = 0
|
||||
endif
|
||||
|
||||
syn case match
|
||||
|
||||
" syncing method
|
||||
syn sync minlines=100
|
||||
|
||||
" Comments
|
||||
syn keyword luaTodo contained TODO FIXME XXX
|
||||
syn match luaComment "--.*$" contains=luaTodo
|
||||
if lua_version == 5 && lua_subversion == 0
|
||||
syn region luaComment matchgroup=luaComment start="--\[\[" end="\]\]" contains=luaTodo,luaInnerComment
|
||||
syn region luaInnerComment contained transparent start="\[\[" end="\]\]"
|
||||
elseif lua_version > 5 || (lua_version == 5 && lua_subversion >= 1)
|
||||
" Comments in Lua 5.1: --[[ ... ]], [=[ ... ]=], [===[ ... ]===], etc.
|
||||
syn region luaComment matchgroup=luaComment start="--\[\z(=*\)\[" end="\]\z1\]"
|
||||
endif
|
||||
|
||||
" First line may start with #!
|
||||
syn match luaComment "\%^#!.*"
|
||||
|
||||
" catch errors caused by wrong parenthesis and wrong curly brackets or
|
||||
" keywords placed outside their respective blocks
|
||||
|
||||
syn region luaParen transparent start='(' end=')' contains=ALLBUT,luaError,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaCondStart,luaBlock,luaRepeatBlock,luaRepeat,luaStatement
|
||||
syn match luaError ")"
|
||||
syn match luaError "}"
|
||||
syn match luaError "\<\%(end\|else\|elseif\|then\|until\|in\)\>"
|
||||
|
||||
" Function declaration
|
||||
syn region luaFunctionBlock transparent matchgroup=luaFunction start="\<function\>" end="\<end\>" contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaRepeat
|
||||
|
||||
" if then else elseif end
|
||||
syn keyword luaCond contained else
|
||||
|
||||
" then ... end
|
||||
syn region luaCondEnd contained transparent matchgroup=luaCond start="\<then\>" end="\<end\>" contains=ALLBUT,luaTodo,luaSpecial,luaRepeat
|
||||
|
||||
" elseif ... then
|
||||
syn region luaCondElseif contained transparent matchgroup=luaCond start="\<elseif\>" end="\<then\>" contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaRepeat
|
||||
|
||||
" if ... then
|
||||
syn region luaCondStart transparent matchgroup=luaCond start="\<if\>" end="\<then\>"me=e-4 contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaRepeat nextgroup=luaCondEnd skipwhite skipempty
|
||||
|
||||
" do ... end
|
||||
syn region luaBlock transparent matchgroup=luaStatement start="\<do\>" end="\<end\>" contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaRepeat
|
||||
|
||||
" repeat ... until
|
||||
syn region luaRepeatBlock transparent matchgroup=luaRepeat start="\<repeat\>" end="\<until\>" contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaRepeat
|
||||
|
||||
" while ... do
|
||||
syn region luaRepeatBlock transparent matchgroup=luaRepeat start="\<while\>" end="\<do\>"me=e-2 contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaRepeat nextgroup=luaBlock skipwhite skipempty
|
||||
|
||||
" for ... do and for ... in ... do
|
||||
syn region luaRepeatBlock transparent matchgroup=luaRepeat start="\<for\>" end="\<do\>"me=e-2 contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd nextgroup=luaBlock skipwhite skipempty
|
||||
|
||||
" Following 'else' example. This is another item to those
|
||||
" contains=ALLBUT,... because only the 'for' luaRepeatBlock contains it.
|
||||
syn keyword luaRepeat contained in
|
||||
|
||||
" other keywords
|
||||
syn keyword luaStatement return local break
|
||||
syn keyword luaOperator and or not
|
||||
syn keyword luaConstant nil
|
||||
if lua_version > 4
|
||||
syn keyword luaConstant true false
|
||||
endif
|
||||
|
||||
" Strings
|
||||
if lua_version < 5
|
||||
syn match luaSpecial contained "\\[\\abfnrtv\'\"]\|\\\d\{,3}"
|
||||
elseif lua_version == 5 && lua_subversion == 0
|
||||
syn match luaSpecial contained "\\[\\abfnrtv\'\"[\]]\|\\\d\{,3}"
|
||||
syn region luaString2 matchgroup=luaString start=+\[\[+ end=+\]\]+ contains=luaString2
|
||||
elseif lua_version > 5 || (lua_version == 5 && lua_subversion >= 1)
|
||||
syn match luaSpecial contained "\\[\\abfnrtv\'\"]\|\\\d\{,3}"
|
||||
syn region luaString2 matchgroup=luaString start="\[\z(=*\)\[" end="\]\z1\]"
|
||||
endif
|
||||
syn region luaString start=+'+ end=+'+ skip=+\\\\\|\\'+ contains=luaSpecial
|
||||
syn region luaString start=+"+ end=+"+ skip=+\\\\\|\\"+ contains=luaSpecial
|
||||
|
||||
" integer number
|
||||
syn match luaNumber "\<[0-9]\+\>"
|
||||
" floating point number, with dot, optional exponent
|
||||
syn match luaFloat "\<[0-9]\+\.[0-9]*\%(e[-+]\=[0-9]\+\)\=\>"
|
||||
" floating point number, starting with a dot, optional exponent
|
||||
syn match luaFloat "\.[0-9]\+\%(e[-+]\=[0-9]\+\)\=\>"
|
||||
" floating point number, without dot, with exponent
|
||||
syn match luaFloat "\<[0-9]\+e[-+]\=[0-9]\+\>"
|
||||
|
||||
" tables
|
||||
syn region luaTableBlock transparent matchgroup=luaTable start="{" end="}" contains=ALLBUT,luaTodo,luaSpecial,luaCond,luaCondElseif,luaCondEnd,luaCondStart,luaBlock,luaRepeatBlock,luaRepeat,luaStatement
|
||||
|
||||
syn keyword luaFunc assert collectgarbage dofile error next
|
||||
syn keyword luaFunc print rawget rawset tonumber tostring type _VERSION
|
||||
|
||||
if lua_version == 4
|
||||
syn keyword luaFunc _ALERT _ERRORMESSAGE gcinfo
|
||||
syn keyword luaFunc call copytagmethods dostring
|
||||
syn keyword luaFunc foreach foreachi getglobal getn
|
||||
syn keyword luaFunc gettagmethod globals newtag
|
||||
syn keyword luaFunc setglobal settag settagmethod sort
|
||||
syn keyword luaFunc tag tinsert tremove
|
||||
syn keyword luaFunc _INPUT _OUTPUT _STDIN _STDOUT _STDERR
|
||||
syn keyword luaFunc openfile closefile flush seek
|
||||
syn keyword luaFunc setlocale execute remove rename tmpname
|
||||
syn keyword luaFunc getenv date clock exit
|
||||
syn keyword luaFunc readfrom writeto appendto read write
|
||||
syn keyword luaFunc PI abs sin cos tan asin
|
||||
syn keyword luaFunc acos atan atan2 ceil floor
|
||||
syn keyword luaFunc mod frexp ldexp sqrt min max log
|
||||
syn keyword luaFunc log10 exp deg rad random
|
||||
syn keyword luaFunc randomseed strlen strsub strlower strupper
|
||||
syn keyword luaFunc strchar strrep ascii strbyte
|
||||
syn keyword luaFunc format strfind gsub
|
||||
syn keyword luaFunc getinfo getlocal setlocal setcallhook setlinehook
|
||||
elseif lua_version == 5
|
||||
" Not sure if all these functions need to be highlighted...
|
||||
syn keyword luaFunc _G getfenv getmetatable ipairs loadfile
|
||||
syn keyword luaFunc loadstring pairs pcall rawequal
|
||||
syn keyword luaFunc require setfenv setmetatable unpack xpcall
|
||||
if lua_subversion == 0
|
||||
syn keyword luaFunc gcinfo loadlib LUA_PATH _LOADED _REQUIREDNAME
|
||||
elseif lua_subversion == 1
|
||||
syn keyword luaFunc load module select
|
||||
syn match luaFunc /package\.cpath/
|
||||
syn match luaFunc /package\.loaded/
|
||||
syn match luaFunc /package\.loadlib/
|
||||
syn match luaFunc /package\.path/
|
||||
syn match luaFunc /package\.preload/
|
||||
syn match luaFunc /package\.seeall/
|
||||
syn match luaFunc /coroutine\.running/
|
||||
endif
|
||||
syn match luaFunc /coroutine\.create/
|
||||
syn match luaFunc /coroutine\.resume/
|
||||
syn match luaFunc /coroutine\.status/
|
||||
syn match luaFunc /coroutine\.wrap/
|
||||
syn match luaFunc /coroutine\.yield/
|
||||
syn match luaFunc /string\.byte/
|
||||
syn match luaFunc /string\.char/
|
||||
syn match luaFunc /string\.dump/
|
||||
syn match luaFunc /string\.find/
|
||||
syn match luaFunc /string\.len/
|
||||
syn match luaFunc /string\.lower/
|
||||
syn match luaFunc /string\.rep/
|
||||
syn match luaFunc /string\.sub/
|
||||
syn match luaFunc /string\.upper/
|
||||
syn match luaFunc /string\.format/
|
||||
syn match luaFunc /string\.gsub/
|
||||
if lua_subversion == 0
|
||||
syn match luaFunc /string\.gfind/
|
||||
syn match luaFunc /table\.getn/
|
||||
syn match luaFunc /table\.setn/
|
||||
syn match luaFunc /table\.foreach/
|
||||
syn match luaFunc /table\.foreachi/
|
||||
elseif lua_subversion == 1
|
||||
syn match luaFunc /string\.gmatch/
|
||||
syn match luaFunc /string\.match/
|
||||
syn match luaFunc /string\.reverse/
|
||||
syn match luaFunc /table\.maxn/
|
||||
endif
|
||||
syn match luaFunc /table\.concat/
|
||||
syn match luaFunc /table\.sort/
|
||||
syn match luaFunc /table\.insert/
|
||||
syn match luaFunc /table\.remove/
|
||||
syn match luaFunc /math\.abs/
|
||||
syn match luaFunc /math\.acos/
|
||||
syn match luaFunc /math\.asin/
|
||||
syn match luaFunc /math\.atan/
|
||||
syn match luaFunc /math\.atan2/
|
||||
syn match luaFunc /math\.ceil/
|
||||
syn match luaFunc /math\.sin/
|
||||
syn match luaFunc /math\.cos/
|
||||
syn match luaFunc /math\.tan/
|
||||
syn match luaFunc /math\.deg/
|
||||
syn match luaFunc /math\.exp/
|
||||
syn match luaFunc /math\.floor/
|
||||
syn match luaFunc /math\.log/
|
||||
syn match luaFunc /math\.log10/
|
||||
syn match luaFunc /math\.max/
|
||||
syn match luaFunc /math\.min/
|
||||
if lua_subversion == 0
|
||||
syn match luaFunc /math\.mod/
|
||||
elseif lua_subversion == 1
|
||||
syn match luaFunc /math\.fmod/
|
||||
syn match luaFunc /math\.modf/
|
||||
syn match luaFunc /math\.cosh/
|
||||
syn match luaFunc /math\.sinh/
|
||||
syn match luaFunc /math\.tanh/
|
||||
endif
|
||||
syn match luaFunc /math\.pow/
|
||||
syn match luaFunc /math\.rad/
|
||||
syn match luaFunc /math\.sqrt/
|
||||
syn match luaFunc /math\.frexp/
|
||||
syn match luaFunc /math\.ldexp/
|
||||
syn match luaFunc /math\.random/
|
||||
syn match luaFunc /math\.randomseed/
|
||||
syn match luaFunc /math\.pi/
|
||||
syn match luaFunc /io\.stdin/
|
||||
syn match luaFunc /io\.stdout/
|
||||
syn match luaFunc /io\.stderr/
|
||||
syn match luaFunc /io\.close/
|
||||
syn match luaFunc /io\.flush/
|
||||
syn match luaFunc /io\.input/
|
||||
syn match luaFunc /io\.lines/
|
||||
syn match luaFunc /io\.open/
|
||||
syn match luaFunc /io\.output/
|
||||
syn match luaFunc /io\.popen/
|
||||
syn match luaFunc /io\.read/
|
||||
syn match luaFunc /io\.tmpfile/
|
||||
syn match luaFunc /io\.type/
|
||||
syn match luaFunc /io\.write/
|
||||
syn match luaFunc /os\.clock/
|
||||
syn match luaFunc /os\.date/
|
||||
syn match luaFunc /os\.difftime/
|
||||
syn match luaFunc /os\.execute/
|
||||
syn match luaFunc /os\.exit/
|
||||
syn match luaFunc /os\.getenv/
|
||||
syn match luaFunc /os\.remove/
|
||||
syn match luaFunc /os\.rename/
|
||||
syn match luaFunc /os\.setlocale/
|
||||
syn match luaFunc /os\.time/
|
||||
syn match luaFunc /os\.tmpname/
|
||||
syn match luaFunc /debug\.debug/
|
||||
syn match luaFunc /debug\.gethook/
|
||||
syn match luaFunc /debug\.getinfo/
|
||||
syn match luaFunc /debug\.getlocal/
|
||||
syn match luaFunc /debug\.getupvalue/
|
||||
syn match luaFunc /debug\.setlocal/
|
||||
syn match luaFunc /debug\.setupvalue/
|
||||
syn match luaFunc /debug\.sethook/
|
||||
syn match luaFunc /debug\.traceback/
|
||||
if lua_subversion == 1
|
||||
syn match luaFunc /debug\.getfenv/
|
||||
syn match luaFunc /debug\.getmetatable/
|
||||
syn match luaFunc /debug\.getregistry/
|
||||
syn match luaFunc /debug\.setfenv/
|
||||
syn match luaFunc /debug\.setmetatable/
|
||||
endif
|
||||
endif
|
||||
|
||||
" Define the default highlighting.
|
||||
" For version 5.7 and earlier: only when not done already
|
||||
" For version 5.8 and later: only when an item doesn't have highlighting yet
|
||||
if version >= 508 || !exists("did_lua_syntax_inits")
|
||||
if version < 508
|
||||
let did_lua_syntax_inits = 1
|
||||
command -nargs=+ HiLink hi link <args>
|
||||
else
|
||||
command -nargs=+ HiLink hi def link <args>
|
||||
endif
|
||||
|
||||
HiLink luaStatement Statement
|
||||
HiLink luaRepeat Repeat
|
||||
HiLink luaString String
|
||||
HiLink luaString2 String
|
||||
HiLink luaNumber Number
|
||||
HiLink luaFloat Float
|
||||
HiLink luaOperator Operator
|
||||
HiLink luaConstant Constant
|
||||
HiLink luaCond Conditional
|
||||
HiLink luaFunction Function
|
||||
HiLink luaComment Comment
|
||||
HiLink luaTodo Todo
|
||||
HiLink luaTable Structure
|
||||
HiLink luaError Error
|
||||
HiLink luaSpecial SpecialChar
|
||||
HiLink luaFunc Identifier
|
||||
|
||||
delcommand HiLink
|
||||
endif
|
||||
|
||||
let b:current_syntax = "lua"
|
||||
|
||||
" vim: et ts=8
|
||||
|
@ -143,8 +143,7 @@ is also available through the Platform SDK, |ms-platform-sdk|.
|
||||
Visual C++ 2005 Express Edition
|
||||
-------------------------------
|
||||
|
||||
Visual C++ 2005 Express Edition can be downloaded for free
|
||||
before November 2006 from
|
||||
Visual C++ 2005 Express Edition can be downloaded for free from:
|
||||
http://msdn.microsoft.com/vstudio/express/visualC/default.aspx
|
||||
This includes the IDE and the debugger. You will also need
|
||||
|ms-platform-sdk|. You can build Vim with Make_mvc.mak.
|
||||
|
3
src/auto/configure
vendored
3
src/auto/configure
vendored
@ -8986,8 +8986,9 @@ if test -z "$SKIP_MOTIF"; then
|
||||
|
||||
|
||||
|
||||
|
||||
for ac_header in Xm/Xm.h Xm/XpmP.h Xm/JoinSideT.h Xm/TraitP.h Xm/Manager.h \
|
||||
Xm/UnhighlightT.h
|
||||
Xm/UnhighlightT.h Xm/Notebook.h
|
||||
do
|
||||
as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
|
||||
if eval "test \"\${$as_ac_Header+set}\" = set"; then
|
||||
|
@ -239,6 +239,7 @@
|
||||
#undef HAVE_XM_MANAGER_H
|
||||
#undef HAVE_XM_UNHIGHLIGHTT_H
|
||||
#undef HAVE_XM_JOINSIDET_H
|
||||
#undef HAVE_XM_NOTEBOOK_H
|
||||
#undef HAVE_X11_XPM_H
|
||||
#undef HAVE_X11_XMU_EDITRES_H
|
||||
#undef HAVE_X11_SM_SMLIB_H
|
||||
|
@ -1901,7 +1901,7 @@ if test -z "$SKIP_MOTIF"; then
|
||||
cppflags_save=$CPPFLAGS
|
||||
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
|
||||
AC_CHECK_HEADERS(Xm/Xm.h Xm/XpmP.h Xm/JoinSideT.h Xm/TraitP.h Xm/Manager.h \
|
||||
Xm/UnhighlightT.h)
|
||||
Xm/UnhighlightT.h Xm/Notebook.h)
|
||||
|
||||
if test $ac_cv_header_Xm_XpmP_h = yes; then
|
||||
dnl Solaris uses XpmAttributes_21, very annoying.
|
||||
|
@ -8863,7 +8863,6 @@ f_expand(argvars, rettv)
|
||||
ExpandInit(&xpc);
|
||||
xpc.xp_context = EXPAND_FILES;
|
||||
rettv->vval.v_string = ExpandOne(&xpc, s, NULL, flags, WILD_ALL);
|
||||
ExpandCleanup(&xpc);
|
||||
}
|
||||
else
|
||||
rettv->vval.v_string = NULL;
|
||||
@ -10397,7 +10396,6 @@ f_glob(argvars, rettv)
|
||||
rettv->v_type = VAR_STRING;
|
||||
rettv->vval.v_string = ExpandOne(&xpc, get_tv_string(&argvars[0]),
|
||||
NULL, WILD_USE_NL|WILD_SILENT, WILD_ALL);
|
||||
ExpandCleanup(&xpc);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -4371,7 +4371,6 @@ expand_filename(eap, cmdlinep, errormsgp)
|
||||
p = ExpandOne(&xpc, eap->arg, NULL,
|
||||
WILD_LIST_NOTFOUND|WILD_ADD_SLASH,
|
||||
WILD_EXPAND_FREE);
|
||||
ExpandCleanup(&xpc);
|
||||
if (p == NULL)
|
||||
return FAIL;
|
||||
}
|
||||
|
@ -3260,7 +3260,8 @@ nextwild(xp, type, options)
|
||||
* Return a pointer to alloced memory containing the new string.
|
||||
* Return NULL for failure.
|
||||
*
|
||||
* Results are cached in xp->xp_files and xp->xp_numfiles.
|
||||
* Results are cached in xp->xp_files and xp->xp_numfiles, except when "mode"
|
||||
* is WILD_EXPAND_FREE or WILD_ALL.
|
||||
*
|
||||
* mode = WILD_FREE: just free previously expanded matches
|
||||
* mode = WILD_EXPAND_FREE: normal expansion, do not keep matches
|
||||
|
@ -753,7 +753,8 @@
|
||||
/*
|
||||
* GUI tabline
|
||||
*/
|
||||
#if defined(FEAT_WINDOWS) && (defined(FEAT_GUI_GTK) || defined(FEAT_GUI_MOTIF)\
|
||||
#if defined(FEAT_WINDOWS) && (defined(FEAT_GUI_GTK) \
|
||||
|| (defined(FEAT_GUI_MOTIF) && defined(HAVE_XM_NOTEBOOK_H)) \
|
||||
|| (defined(FEAT_GUI_MSWIN) && (!defined(_MSC_VER) || _MSC_VER > 1020)))
|
||||
# define FEAT_GUI_TABLINE
|
||||
#endif
|
||||
|
10
src/gui.c
10
src/gui.c
@ -3491,7 +3491,7 @@ get_tabline_label(tp)
|
||||
/*
|
||||
* Send the event for clicking to select tab page "nr".
|
||||
* Returns TRUE if it was done, FALSE when skipped because we are already at
|
||||
* that tab page.
|
||||
* that tab page or the cmdline window is open.
|
||||
*/
|
||||
int
|
||||
send_tabline_event(nr)
|
||||
@ -3501,6 +3501,14 @@ send_tabline_event(nr)
|
||||
|
||||
if (nr == tabpage_index(curtab))
|
||||
return FALSE;
|
||||
# ifdef FEAT_CMDWIN
|
||||
if (cmdwin_type != 0)
|
||||
{
|
||||
/* Set it back to the current tab page. */
|
||||
gui_mch_set_curtab(tabpage_index(curtab));
|
||||
return FALSE;
|
||||
}
|
||||
# endif
|
||||
string[0] = CSI;
|
||||
string[1] = KS_TABLINE;
|
||||
string[2] = KE_FILLER;
|
||||
|
@ -48,6 +48,11 @@
|
||||
|
||||
/* Vim's Scrap flavor. */
|
||||
#define VIMSCRAPFLAVOR 'VIM!'
|
||||
#ifdef FEAT_MBYTE
|
||||
# define SCRAPTEXTFLAVOR kScrapFlavorTypeUnicode
|
||||
#else
|
||||
# define SCRAPTEXTFLAVOR kScrapFlavorTypeText
|
||||
#endif
|
||||
|
||||
static EventHandlerUPP mouseWheelHandlerUPP = NULL;
|
||||
SInt32 gMacSystemVersion;
|
||||
@ -4427,69 +4432,65 @@ clip_mch_request_selection(VimClipboard *cbd)
|
||||
|
||||
if (flavor == 0)
|
||||
{
|
||||
error = GetScrapFlavorFlags(scrap, kScrapFlavorTypeUnicode, &scrapFlags);
|
||||
error = GetScrapFlavorFlags(scrap, SCRAPTEXTFLAVOR, &scrapFlags);
|
||||
if (error != noErr)
|
||||
return;
|
||||
|
||||
error = GetScrapFlavorSize(scrap, kScrapFlavorTypeUnicode, &scrapSize);
|
||||
error = GetScrapFlavorSize(scrap, SCRAPTEXTFLAVOR, &scrapSize);
|
||||
if (error != noErr)
|
||||
return;
|
||||
}
|
||||
|
||||
ReserveMem(scrapSize);
|
||||
|
||||
{
|
||||
/* In CARBON we don't need a Handle, a pointer is good */
|
||||
textOfClip = NewHandle(scrapSize);
|
||||
/* tempclip = lalloc(scrapSize+1, TRUE); */
|
||||
HLock(textOfClip);
|
||||
error = GetScrapFlavorData(scrap,
|
||||
flavor ? VIMSCRAPFLAVOR : kScrapFlavorTypeUnicode,
|
||||
&scrapSize, *textOfClip);
|
||||
scrapSize -= flavor;
|
||||
/* In CARBON we don't need a Handle, a pointer is good */
|
||||
textOfClip = NewHandle(scrapSize);
|
||||
|
||||
if (flavor)
|
||||
type = **textOfClip;
|
||||
else
|
||||
type = (strchr(*textOfClip, '\r') != NULL) ? MLINE : MCHAR;
|
||||
/* tempclip = lalloc(scrapSize+1, TRUE); */
|
||||
HLock(textOfClip);
|
||||
error = GetScrapFlavorData(scrap,
|
||||
flavor ? VIMSCRAPFLAVOR : SCRAPTEXTFLAVOR,
|
||||
&scrapSize, *textOfClip);
|
||||
scrapSize -= flavor;
|
||||
|
||||
tempclip = lalloc(scrapSize + 1, TRUE);
|
||||
#if defined(FEAT_MBYTE)
|
||||
mch_memmove(tempclip, *textOfClip + flavor, scrapSize);
|
||||
#else
|
||||
STRNCPY(tempclip, *textOfClip + flavor, scrapSize);
|
||||
#endif
|
||||
tempclip[scrapSize] = 0;
|
||||
if (flavor)
|
||||
type = **textOfClip;
|
||||
else
|
||||
type = (strchr(*textOfClip, '\r') != NULL) ? MLINE : MCHAR;
|
||||
|
||||
tempclip = lalloc(scrapSize + 1, TRUE);
|
||||
mch_memmove(tempclip, *textOfClip + flavor, scrapSize);
|
||||
tempclip[scrapSize] = 0;
|
||||
|
||||
#ifdef MACOS_CONVERT
|
||||
{
|
||||
/* Convert from utf-16 (clipboard) */
|
||||
size_t encLen = 0;
|
||||
char_u *to = mac_utf16_to_enc((UniChar *)tempclip, scrapSize, &encLen);
|
||||
if (to)
|
||||
|
||||
if (to != NULL)
|
||||
{
|
||||
scrapSize = encLen;
|
||||
vim_free(tempclip);
|
||||
tempclip = to;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
searchCR = (char *)tempclip;
|
||||
while (searchCR != NULL)
|
||||
{
|
||||
searchCR = strchr(searchCR, '\r');
|
||||
|
||||
if (searchCR != NULL)
|
||||
searchCR[0] = '\n';
|
||||
|
||||
}
|
||||
|
||||
clip_yank_selection(type, tempclip, scrapSize, cbd);
|
||||
|
||||
vim_free(tempclip);
|
||||
HUnlock(textOfClip);
|
||||
|
||||
DisposeHandle(textOfClip);
|
||||
searchCR = (char *)tempclip;
|
||||
while (searchCR != NULL)
|
||||
{
|
||||
searchCR = strchr(searchCR, '\r');
|
||||
if (searchCR != NULL)
|
||||
*searchCR = '\n';
|
||||
}
|
||||
|
||||
clip_yank_selection(type, tempclip, scrapSize, cbd);
|
||||
|
||||
vim_free(tempclip);
|
||||
HUnlock(textOfClip);
|
||||
|
||||
DisposeHandle(textOfClip);
|
||||
}
|
||||
|
||||
void
|
||||
@ -4527,12 +4528,10 @@ clip_mch_set_selection(VimClipboard *cbd)
|
||||
/*
|
||||
* Once we set the clipboard, lose ownership. If another application sets
|
||||
* the clipboard, we don't want to think that we still own it.
|
||||
*
|
||||
*/
|
||||
|
||||
cbd->owned = FALSE;
|
||||
|
||||
type = clip_convert_selection(&str, (long_u *) &scrapSize, cbd);
|
||||
type = clip_convert_selection(&str, (long_u *)&scrapSize, cbd);
|
||||
|
||||
#ifdef MACOS_CONVERT
|
||||
size_t utf16_len = 0;
|
||||
@ -4555,7 +4554,7 @@ clip_mch_set_selection(VimClipboard *cbd)
|
||||
**textOfClip = type;
|
||||
mch_memmove(*textOfClip + 1, str, scrapSize);
|
||||
GetCurrentScrap(&scrap);
|
||||
PutScrapFlavor(scrap, kScrapFlavorTypeUnicode, kScrapFlavorMaskNone,
|
||||
PutScrapFlavor(scrap, SCRAPTEXTFLAVOR, kScrapFlavorMaskNone,
|
||||
scrapSize, *textOfClip + 1);
|
||||
PutScrapFlavor(scrap, VIMSCRAPFLAVOR, kScrapFlavorMaskNone,
|
||||
scrapSize + 1, *textOfClip);
|
||||
|
@ -26,7 +26,6 @@
|
||||
#include <Xm/LabelG.h>
|
||||
#include <Xm/ToggleBG.h>
|
||||
#include <Xm/SeparatoG.h>
|
||||
#include <Xm/Notebook.h>
|
||||
#include <Xm/XmP.h>
|
||||
|
||||
#include <X11/keysym.h>
|
||||
@ -43,6 +42,9 @@
|
||||
# include <Xm/XpmP.h>
|
||||
# endif
|
||||
#endif
|
||||
#ifdef HAVE_XM_NOTEBOOK_H
|
||||
# include <Xm/Notebook.h>
|
||||
#endif
|
||||
|
||||
#include "gui_xmebw.h" /* for our Enhanced Button Widget */
|
||||
|
||||
|
@ -2296,18 +2296,26 @@ gui_mch_update_tabline(void)
|
||||
int curtabidx = 0;
|
||||
RECT rc;
|
||||
#ifdef FEAT_MBYTE
|
||||
static int use_unicode = FALSE;
|
||||
int uu;
|
||||
WCHAR *wstr = NULL;
|
||||
#endif
|
||||
|
||||
if (s_tabhwnd == NULL)
|
||||
return;
|
||||
|
||||
#if defined(FEAT_MBYTE) && defined(CCM_SETUNICODEFORMAT)
|
||||
if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
|
||||
/*
|
||||
* Enable unicode support
|
||||
*/
|
||||
SendMessage(s_tabhwnd, CCM_SETUNICODEFORMAT, (WPARAM)TRUE, (LPARAM)0);
|
||||
#if defined(FEAT_MBYTE)
|
||||
# ifndef CCM_SETUNICODEFORMAT
|
||||
/* For older compilers. We assume this never changes. */
|
||||
# define CCM_SETUNICODEFORMAT 0x2005
|
||||
# endif
|
||||
uu = (enc_codepage >= 0 && (int)GetACP() != enc_codepage);
|
||||
if (uu != use_unicode)
|
||||
{
|
||||
/* Enable/disable unicode support */
|
||||
SendMessage(s_tabhwnd, CCM_SETUNICODEFORMAT, (WPARAM)uu, (LPARAM)0);
|
||||
use_unicode = uu;
|
||||
}
|
||||
#endif
|
||||
|
||||
tie.mask = TCIF_TEXT;
|
||||
@ -2330,7 +2338,7 @@ gui_mch_update_tabline(void)
|
||||
tie.pszText = NameBuff;
|
||||
#ifdef FEAT_MBYTE
|
||||
wstr = NULL;
|
||||
if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
|
||||
if (use_unicode)
|
||||
{
|
||||
/* Need to go through Unicode. */
|
||||
wstr = enc_to_ucs2(NameBuff, NULL);
|
||||
|
@ -1532,7 +1532,7 @@ recover_names(fname, list, nr)
|
||||
files[i] = files[i + 1];
|
||||
}
|
||||
}
|
||||
if (nr)
|
||||
if (nr > 0)
|
||||
{
|
||||
file_count += num_files;
|
||||
if (nr <= file_count)
|
||||
@ -1578,7 +1578,8 @@ recover_names(fname, list, nr)
|
||||
|
||||
for (i = 0; i < num_names; ++i)
|
||||
vim_free(names[i]);
|
||||
FreeWild(num_files, files);
|
||||
if (num_files > 0)
|
||||
FreeWild(num_files, files);
|
||||
}
|
||||
vim_free(dir_name);
|
||||
return file_count;
|
||||
|
29
src/menu.c
29
src/menu.c
@ -2336,20 +2336,23 @@ ex_menutranslate(eap)
|
||||
{
|
||||
tp = (menutrans_T *)menutrans_ga.ga_data;
|
||||
from = vim_strsave(from);
|
||||
from_noamp = menu_text(from, NULL, NULL);
|
||||
to = vim_strnsave(to, (int)(arg - to));
|
||||
if (from != NULL && from_noamp != NULL && to != NULL)
|
||||
if (from != NULL)
|
||||
{
|
||||
tp[menutrans_ga.ga_len].from = from;
|
||||
tp[menutrans_ga.ga_len].from_noamp = from_noamp;
|
||||
tp[menutrans_ga.ga_len].to = to;
|
||||
++menutrans_ga.ga_len;
|
||||
}
|
||||
else
|
||||
{
|
||||
vim_free(from);
|
||||
vim_free(from_noamp);
|
||||
vim_free(to);
|
||||
from_noamp = menu_text(from, NULL, NULL);
|
||||
to = vim_strnsave(to, (int)(arg - to));
|
||||
if (from_noamp != NULL && to != NULL)
|
||||
{
|
||||
tp[menutrans_ga.ga_len].from = from;
|
||||
tp[menutrans_ga.ga_len].from_noamp = from_noamp;
|
||||
tp[menutrans_ga.ga_len].to = to;
|
||||
++menutrans_ga.ga_len;
|
||||
}
|
||||
else
|
||||
{
|
||||
vim_free(from);
|
||||
vim_free(from_noamp);
|
||||
vim_free(to);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -3625,7 +3625,6 @@ expand_env_esc(srcp, dst, dstlen, esc, startstr)
|
||||
xpc.xp_context = EXPAND_FILES;
|
||||
var = ExpandOne(&xpc, dst, NULL,
|
||||
WILD_ADD_SLASH|WILD_SILENT, WILD_EXPAND_FREE);
|
||||
ExpandCleanup(&xpc);
|
||||
mustfree = TRUE;
|
||||
}
|
||||
|
||||
@ -9363,7 +9362,7 @@ FreeWild(count, files)
|
||||
int count;
|
||||
char_u **files;
|
||||
{
|
||||
if (files == NULL || count <= 0)
|
||||
if (count <= 0 || files == NULL)
|
||||
return;
|
||||
#if defined(__EMX__) && defined(__ALWAYS_HAS_TRAILING_NULL_POINTER) /* XXX */
|
||||
/*
|
||||
|
127
src/option.c
127
src/option.c
@ -2996,35 +2996,44 @@ set_init_1()
|
||||
* 'maxmemtot' and 'maxmem' may have to be adjusted for available memory
|
||||
*/
|
||||
opt_idx = findoption((char_u *)"maxmemtot");
|
||||
#if !defined(HAVE_AVAIL_MEM) && !defined(HAVE_TOTAL_MEM)
|
||||
if (options[opt_idx].def_val[VI_DEFAULT] == (char_u *)0L)
|
||||
#endif
|
||||
if (opt_idx >= 0)
|
||||
{
|
||||
#if !defined(HAVE_AVAIL_MEM) && !defined(HAVE_TOTAL_MEM)
|
||||
if (options[opt_idx].def_val[VI_DEFAULT] == (char_u *)0L)
|
||||
#endif
|
||||
{
|
||||
#ifdef HAVE_AVAIL_MEM
|
||||
/* Use amount of memory available at this moment. */
|
||||
n = (mch_avail_mem(FALSE) >> 11);
|
||||
/* Use amount of memory available at this moment. */
|
||||
n = (mch_avail_mem(FALSE) >> 11);
|
||||
#else
|
||||
# ifdef HAVE_TOTAL_MEM
|
||||
/* Use amount of memory available to Vim. */
|
||||
n = (mch_total_mem(FALSE) >> 11);
|
||||
/* Use amount of memory available to Vim. */
|
||||
n = (mch_total_mem(FALSE) >> 11);
|
||||
# else
|
||||
n = (0x7fffffff >> 11);
|
||||
n = (0x7fffffff >> 11);
|
||||
# endif
|
||||
#endif
|
||||
options[opt_idx].def_val[VI_DEFAULT] = (char_u *)n;
|
||||
opt_idx = findoption((char_u *)"maxmem");
|
||||
#if !defined(HAVE_AVAIL_MEM) && !defined(HAVE_TOTAL_MEM)
|
||||
if ((long)options[opt_idx].def_val[VI_DEFAULT] > n
|
||||
|| (long)options[opt_idx].def_val[VI_DEFAULT] == 0L)
|
||||
#endif
|
||||
options[opt_idx].def_val[VI_DEFAULT] = (char_u *)n;
|
||||
opt_idx = findoption((char_u *)"maxmem");
|
||||
if (opt_idx >= 0)
|
||||
{
|
||||
#if !defined(HAVE_AVAIL_MEM) && !defined(HAVE_TOTAL_MEM)
|
||||
if ((long)options[opt_idx].def_val[VI_DEFAULT] > n
|
||||
|| (long)options[opt_idx].def_val[VI_DEFAULT] == 0L)
|
||||
#endif
|
||||
options[opt_idx].def_val[VI_DEFAULT] = (char_u *)n;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef FEAT_GUI_W32
|
||||
/* force 'shortname' for Win32s */
|
||||
if (gui_is_win32s())
|
||||
options[findoption((char_u *)"shortname")].def_val[VI_DEFAULT] =
|
||||
(char_u *)TRUE;
|
||||
{
|
||||
opt_idx = findoption((char_u *)"shortname");
|
||||
if (opt_idx >= 0)
|
||||
options[opt_idx].def_val[VI_DEFAULT] = (char_u *)TRUE;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef FEAT_SEARCHPATH
|
||||
@ -3057,8 +3066,11 @@ set_init_1()
|
||||
}
|
||||
buf[j] = NUL;
|
||||
opt_idx = findoption((char_u *)"cdpath");
|
||||
options[opt_idx].def_val[VI_DEFAULT] = buf;
|
||||
options[opt_idx].flags |= P_DEF_ALLOCED;
|
||||
if (opt_idx >= 0)
|
||||
{
|
||||
options[opt_idx].def_val[VI_DEFAULT] = buf;
|
||||
options[opt_idx].flags |= P_DEF_ALLOCED;
|
||||
}
|
||||
}
|
||||
if (mustfree)
|
||||
vim_free(cdpath);
|
||||
@ -3259,8 +3271,11 @@ set_init_1()
|
||||
if (mb_init() == NULL)
|
||||
{
|
||||
opt_idx = findoption((char_u *)"encoding");
|
||||
options[opt_idx].def_val[VI_DEFAULT] = p_enc;
|
||||
options[opt_idx].flags |= P_DEF_ALLOCED;
|
||||
if (opt_idx >= 0)
|
||||
{
|
||||
options[opt_idx].def_val[VI_DEFAULT] = p_enc;
|
||||
options[opt_idx].flags |= P_DEF_ALLOCED;
|
||||
}
|
||||
|
||||
#if defined(MSDOS) || defined(MSWIN) || defined(OS2) || defined(MACOS) \
|
||||
|| defined(VMS)
|
||||
@ -3278,9 +3293,11 @@ set_init_1()
|
||||
set_string_option_direct((char_u *)"isk", -1,
|
||||
ISK_LATIN1, OPT_FREE, SID_NONE);
|
||||
opt_idx = findoption((char_u *)"isp");
|
||||
options[opt_idx].def_val[VIM_DEFAULT] = ISP_LATIN1;
|
||||
if (opt_idx >= 0)
|
||||
options[opt_idx].def_val[VIM_DEFAULT] = ISP_LATIN1;
|
||||
opt_idx = findoption((char_u *)"isk");
|
||||
options[opt_idx].def_val[VIM_DEFAULT] = ISK_LATIN1;
|
||||
if (opt_idx >= 0)
|
||||
options[opt_idx].def_val[VIM_DEFAULT] = ISK_LATIN1;
|
||||
(void)init_chartab();
|
||||
}
|
||||
#endif
|
||||
@ -3297,8 +3314,11 @@ set_init_1()
|
||||
if (p_tenc != NULL)
|
||||
{
|
||||
opt_idx = findoption((char_u *)"termencoding");
|
||||
options[opt_idx].def_val[VI_DEFAULT] = p_tenc;
|
||||
options[opt_idx].flags |= P_DEF_ALLOCED;
|
||||
if (opt_idx >= 0)
|
||||
{
|
||||
options[opt_idx].def_val[VI_DEFAULT] = p_tenc;
|
||||
options[opt_idx].flags |= P_DEF_ALLOCED;
|
||||
}
|
||||
convert_setup(&input_conv, p_tenc, p_enc);
|
||||
convert_setup(&output_conv, p_enc, p_tenc);
|
||||
}
|
||||
@ -3436,10 +3456,13 @@ set_string_default(name, val)
|
||||
if (p != NULL) /* we don't want a NULL */
|
||||
{
|
||||
opt_idx = findoption((char_u *)name);
|
||||
if (options[opt_idx].flags & P_DEF_ALLOCED)
|
||||
vim_free(options[opt_idx].def_val[VI_DEFAULT]);
|
||||
options[opt_idx].def_val[VI_DEFAULT] = p;
|
||||
options[opt_idx].flags |= P_DEF_ALLOCED;
|
||||
if (opt_idx >= 0)
|
||||
{
|
||||
if (options[opt_idx].flags & P_DEF_ALLOCED)
|
||||
vim_free(options[opt_idx].def_val[VI_DEFAULT]);
|
||||
options[opt_idx].def_val[VI_DEFAULT] = p;
|
||||
options[opt_idx].flags |= P_DEF_ALLOCED;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -3452,7 +3475,11 @@ set_number_default(name, val)
|
||||
char *name;
|
||||
long val;
|
||||
{
|
||||
options[findoption((char_u *)name)].def_val[VI_DEFAULT] = (char_u *)val;
|
||||
int opt_idx;
|
||||
|
||||
opt_idx = findoption((char_u *)name);
|
||||
if (opt_idx >= 0)
|
||||
options[opt_idx].def_val[VI_DEFAULT] = (char_u *)val;
|
||||
}
|
||||
|
||||
#if defined(EXITFREE) || defined(PROTO)
|
||||
@ -3498,7 +3525,7 @@ set_init_2()
|
||||
*/
|
||||
set_number_default("scroll", (long)((long_u)Rows >> 1));
|
||||
idx = findoption((char_u *)"scroll");
|
||||
if (!(options[idx].flags & P_WAS_SET))
|
||||
if (idx >= 0 && !(options[idx].flags & P_WAS_SET))
|
||||
set_option_default(idx, OPT_LOCAL, p_cp);
|
||||
comp_col();
|
||||
|
||||
@ -3507,7 +3534,7 @@ set_init_2()
|
||||
* Default is Rows - 1.
|
||||
*/
|
||||
idx = findoption((char_u *)"wi");
|
||||
if (!(options[idx].flags & P_WAS_SET))
|
||||
if (idx >= 0 && !(options[idx].flags & P_WAS_SET))
|
||||
p_window = Rows - 1;
|
||||
set_number_default("window", Rows - 1);
|
||||
|
||||
@ -3519,7 +3546,8 @@ set_init_2()
|
||||
* with a dark background, that can handle color.
|
||||
*/
|
||||
idx = findoption((char_u *)"bg");
|
||||
if (!(options[idx].flags & P_WAS_SET) && *term_bg_default() == 'd')
|
||||
if (idx >= 0 && !(options[idx].flags & P_WAS_SET)
|
||||
&& *term_bg_default() == 'd')
|
||||
{
|
||||
set_string_option_direct(NULL, idx, (char_u *)"dark", OPT_FREE, 0);
|
||||
/* don't mark it as set, when starting the GUI it may be
|
||||
@ -3594,10 +3622,16 @@ set_init_3()
|
||||
#endif
|
||||
|
||||
idx_srr = findoption((char_u *)"srr");
|
||||
do_srr = !(options[idx_srr].flags & P_WAS_SET);
|
||||
if (idx_srr < 0)
|
||||
do_srr = FALSE;
|
||||
else
|
||||
do_srr = !(options[idx_srr].flags & P_WAS_SET);
|
||||
#ifdef FEAT_QUICKFIX
|
||||
idx_sp = findoption((char_u *)"sp");
|
||||
do_sp = !(options[idx_sp].flags & P_WAS_SET);
|
||||
if (idx_sp < 0)
|
||||
do_sp = FALSE;
|
||||
else
|
||||
do_sp = !(options[idx_sp].flags & P_WAS_SET);
|
||||
#endif
|
||||
|
||||
/*
|
||||
@ -3692,7 +3726,7 @@ set_init_3()
|
||||
int idx3;
|
||||
|
||||
idx3 = findoption((char_u *)"shcf");
|
||||
if (!(options[idx3].flags & P_WAS_SET))
|
||||
if (idx3 >= 0 && !(options[idx3].flags & P_WAS_SET))
|
||||
{
|
||||
p_shcf = (char_u *)"-c";
|
||||
options[idx3].def_val[VI_DEFAULT] = p_shcf;
|
||||
@ -3702,14 +3736,14 @@ set_init_3()
|
||||
# ifdef WIN3264
|
||||
/* Somehow Win32 requires the quotes around the redirection too */
|
||||
idx3 = findoption((char_u *)"sxq");
|
||||
if (!(options[idx3].flags & P_WAS_SET))
|
||||
if (idx3 >= 0 && !(options[idx3].flags & P_WAS_SET))
|
||||
{
|
||||
p_sxq = (char_u *)"\"";
|
||||
options[idx3].def_val[VI_DEFAULT] = p_sxq;
|
||||
}
|
||||
# else
|
||||
idx3 = findoption((char_u *)"shq");
|
||||
if (!(options[idx3].flags & P_WAS_SET))
|
||||
if (idx3 >= 0 && !(options[idx3].flags & P_WAS_SET))
|
||||
{
|
||||
p_shq = (char_u *)"\"";
|
||||
options[idx3].def_val[VI_DEFAULT] = p_shq;
|
||||
@ -3738,7 +3772,7 @@ set_helplang_default(lang)
|
||||
if (lang == NULL || STRLEN(lang) < 2) /* safety check */
|
||||
return;
|
||||
idx = findoption((char_u *)"hlg");
|
||||
if (!(options[idx].flags & P_WAS_SET))
|
||||
if (idx >= 0 && !(options[idx].flags & P_WAS_SET))
|
||||
{
|
||||
if (options[idx].flags & P_ALLOCED)
|
||||
free_string_option(p_hlg);
|
||||
@ -3807,7 +3841,7 @@ set_title_defaults()
|
||||
* not need to be contacted.
|
||||
*/
|
||||
idx1 = findoption((char_u *)"title");
|
||||
if (!(options[idx1].flags & P_WAS_SET))
|
||||
if (idx1 >= 0 && !(options[idx1].flags & P_WAS_SET))
|
||||
{
|
||||
#ifdef FEAT_GUI
|
||||
if (gui.starting || gui.in_use)
|
||||
@ -3819,7 +3853,7 @@ set_title_defaults()
|
||||
p_title = val;
|
||||
}
|
||||
idx1 = findoption((char_u *)"icon");
|
||||
if (!(options[idx1].flags & P_WAS_SET))
|
||||
if (idx1 >= 0 && !(options[idx1].flags & P_WAS_SET))
|
||||
{
|
||||
#ifdef FEAT_GUI
|
||||
if (gui.starting || gui.in_use)
|
||||
@ -5224,7 +5258,7 @@ set_string_option_direct(name, opt_idx, val, opt_flags, set_sid)
|
||||
if (opt_idx == -1) /* use name */
|
||||
{
|
||||
opt_idx = findoption(name);
|
||||
if (opt_idx == -1) /* not found (should not happen) */
|
||||
if (opt_idx < 0) /* not found (should not happen) */
|
||||
{
|
||||
EMSG2(_(e_intern2), "set_string_option_direct()");
|
||||
return;
|
||||
@ -8127,7 +8161,7 @@ set_option_value(name, number, string, opt_flags)
|
||||
long_u flags;
|
||||
|
||||
opt_idx = findoption(name);
|
||||
if (opt_idx == -1)
|
||||
if (opt_idx < 0)
|
||||
EMSG2(_("E355: Unknown option: %s"), name);
|
||||
else
|
||||
{
|
||||
@ -9464,7 +9498,8 @@ reset_modifiable()
|
||||
curbuf->b_p_ma = FALSE;
|
||||
p_ma = FALSE;
|
||||
opt_idx = findoption((char_u *)"ma");
|
||||
options[opt_idx].def_val[VI_DEFAULT] = FALSE;
|
||||
if (opt_idx >= 0)
|
||||
options[opt_idx].def_val[VI_DEFAULT] = FALSE;
|
||||
}
|
||||
|
||||
/*
|
||||
@ -10297,12 +10332,16 @@ vimrc_found(fname, envname)
|
||||
change_compatible(on)
|
||||
int on;
|
||||
{
|
||||
int opt_idx;
|
||||
|
||||
if (p_cp != on)
|
||||
{
|
||||
p_cp = on;
|
||||
compatible_set();
|
||||
}
|
||||
options[findoption((char_u *)"cp")].flags |= P_WAS_SET;
|
||||
opt_idx = findoption((char_u *)"cp");
|
||||
if (opt_idx >= 0)
|
||||
options[opt_idx].flags |= P_WAS_SET;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -4999,8 +4999,8 @@ msgid "E397: Filename required"
|
||||
msgstr "E397: Dateiname wird benötigt"
|
||||
|
||||
#, c-format
|
||||
msgid "E747: Missing ']': %s"
|
||||
msgstr "E747: Fehlende ']': %s"
|
||||
msgid "E789: Missing ']': %s"
|
||||
msgstr "E789: Fehlende ']': %s"
|
||||
|
||||
#, c-format
|
||||
msgid "E398: Missing '=': %s"
|
||||
|
243
src/po/fr.po
243
src/po/fr.po
@ -71,8 +71,15 @@
|
||||
# - Hundreds of error messages numbers added (wow)
|
||||
# 2006-04-15 DB Vim 7.0 first draft, based on fr.po 7.0c03
|
||||
# - 285 new messages.
|
||||
# 2006-05-17 DB VIM 7.0 second draft, still 7.0c03
|
||||
# - (check.vim) Fixed 2 wrong translated messages.
|
||||
# 2006-05-19 DB VIM 7.0 second draft, 7.0e02
|
||||
# - 15 new messages.
|
||||
# 2006-05-19 DB VIM 7.0, based on 7.0e03
|
||||
# - (check.vim) Fixed wrong messages.
|
||||
# - header comment of this file should be updated.
|
||||
#
|
||||
# Translated: 1677/1677 (100.00%)
|
||||
# Translated: 1692/1692 (100.00%)
|
||||
#
|
||||
# Polishing done on:
|
||||
# buffer.c
|
||||
@ -94,7 +101,7 @@ msgstr ""
|
||||
"Project-Id-Version: Vim(Français)\n"
|
||||
"Report-Msgid-Bugs-To: Adrien Beau <version.francaise@free.fr>\n"
|
||||
"POT-Creation-Date: 2006-04-01 17:09+0200\n"
|
||||
"PO-Revision-Date: 2006-04-15 22:53+0200\n"
|
||||
"PO-Revision-Date: 2006-04-21 00:31+0200\n"
|
||||
"Last-Translator: David Blanchet <david.blanchet@free.fr>\n"
|
||||
"Language-Team: Adrien Beau <version.francaise@free.fr>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@ -110,7 +117,7 @@ msgstr "E82: Aucun tampon ne peut
|
||||
# explicite.
|
||||
msgid "E83: Cannot allocate buffer, using other one..."
|
||||
msgstr ""
|
||||
"E83: L'allocation du tampon a échoué: arrêtez Vim, libérez de la mémoire"
|
||||
"E83: L'allocation du tampon a échoué : arrêtez Vim, libérez de la mémoire"
|
||||
|
||||
msgid "E515: No buffers were unloaded"
|
||||
msgstr "E515: Aucun tampon n'a été déchargé"
|
||||
@ -327,6 +334,9 @@ msgstr "E102: Le tampon %s est introuvable"
|
||||
msgid "E103: Buffer \"%s\" is not in diff mode"
|
||||
msgstr "E103: Le tampon %s n'est pas en mode diff"
|
||||
|
||||
msgid "E787: Buffer changed unexpectedly"
|
||||
msgstr "E787: Le tampon a été modifié inopinément"
|
||||
|
||||
# AB - Je cherche une traduction plus concise pour "escape".
|
||||
msgid "E104: Escape not allowed in digraph"
|
||||
msgstr "E104: Un digraphe ne peut contenir le caractère d'échappement"
|
||||
@ -346,8 +356,8 @@ msgstr " Compl
|
||||
|
||||
# DB - todo : Faut-il une majuscule à "mode" ?
|
||||
#. ctrl_x_mode == 0, ^P/^N compl.
|
||||
msgid " ^X mode (^]^D^E^F^I^K^L^N^O^P^S^U^V^Y)"
|
||||
msgstr " mode ^X (^]^D^E^F^I^K^L^N^O^P^S^U^V^Y)"
|
||||
msgid " ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)"
|
||||
msgstr " mode ^X (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)"
|
||||
|
||||
msgid " Whole line completion (^L^N^P)"
|
||||
msgstr " Complètement de ligne entière (^L^N^P)"
|
||||
@ -388,8 +398,8 @@ msgstr " Compl
|
||||
msgid " Omni completion (^O^N^P)"
|
||||
msgstr " Complètement selon le type de fichier (Omni) (^O^N^P)"
|
||||
|
||||
msgid " Spelling suggestion (^S^N^P)"
|
||||
msgstr " Suggestion d'orthographe (^S^N^P)"
|
||||
msgid " Spelling suggestion (s^N^P)"
|
||||
msgstr " Suggestion d'orthographe (s^N^P)"
|
||||
|
||||
msgid " Keyword Local completion (^N^P)"
|
||||
msgstr " Complètement local de mot-clé (^N/^P)"
|
||||
@ -656,6 +666,22 @@ msgstr "E723: Il manque '}'
|
||||
msgid "E724: variable nested too deep for displaying"
|
||||
msgstr "E724: variable trop imbriquée pour être afficher"
|
||||
|
||||
#, c-format
|
||||
msgid "E117: Unknown function: %s"
|
||||
msgstr "E117: Fonction inconnue : %s"
|
||||
|
||||
#, c-format
|
||||
msgid "E119: Not enough arguments for function: %s"
|
||||
msgstr "E119: La fonction %s n'a pas reçu assez d'arguments"
|
||||
|
||||
#, c-format
|
||||
msgid "E120: Using <SID> not in a script context: %s"
|
||||
msgstr "E120: <SID> utilisé en dehors d'un script : %s"
|
||||
|
||||
#, c-format
|
||||
msgid "E725: Calling dict function without Dictionary: %s"
|
||||
msgstr "E725: Appel d'une fonction « dict » sans Dictionnaire : %s"
|
||||
|
||||
msgid "E699: Too many arguments"
|
||||
msgstr "E699: Trop d'arguments"
|
||||
|
||||
@ -696,8 +722,8 @@ msgstr ""
|
||||
msgid "called inputrestore() more often than inputsave()"
|
||||
msgstr "inputrestore() a été appelé plus de fois qu'inputsave()"
|
||||
|
||||
msgid "E745: Range not allowed"
|
||||
msgstr "E745: Les plages ne sont pas autorisés"
|
||||
msgid "E786: Range not allowed"
|
||||
msgstr "E786: Les plages ne sont pas autorisés"
|
||||
|
||||
msgid "E701: Invalid type for len()"
|
||||
msgstr "E701: Type invalide avec len()"
|
||||
@ -1200,7 +1226,8 @@ msgstr "E145: Les commandes externes sont indisponibles dans rvim"
|
||||
|
||||
msgid "E146: Regular expressions can't be delimited by letters"
|
||||
msgstr ""
|
||||
"E146: Les expressions régulières ne peuvent pas être délimitées par des lettres"
|
||||
"E146: Les expressions régulières ne peuvent pas être délimitées par des "
|
||||
"lettres"
|
||||
|
||||
#, c-format
|
||||
msgid "replace with %s (y/n/a/q/l/^E/^Y)?"
|
||||
@ -1266,7 +1293,6 @@ msgstr ""
|
||||
msgid "E478: Don't panic!"
|
||||
msgstr "E478: Pas de panique !"
|
||||
|
||||
# DB - c-format : langue de l'aide puis sujet de l'aide.
|
||||
#, c-format
|
||||
msgid "E661: Sorry, no '%s' help for %s"
|
||||
msgstr "E661: Désolé, aucune aide en langue '%s' pour %s"
|
||||
@ -1304,7 +1330,7 @@ msgstr "E670: Encodages diff
|
||||
# DB - Suggestion.
|
||||
#, c-format
|
||||
msgid "E154: Duplicate tag \"%s\" in file %s/%s"
|
||||
msgstr "E154: Marqueur \"%s\" dupliqué fichier %s/%s"
|
||||
msgstr "E154: Marqueur \"%s\" dupliqué dans le fichier %s/%s"
|
||||
|
||||
# AB - Il faut respecter l'esprit plus que la lettre.
|
||||
#, c-format
|
||||
@ -1375,9 +1401,8 @@ msgstr "Fin de la fonction"
|
||||
msgid "E464: Ambiguous use of user-defined command"
|
||||
msgstr "E464: Utilisation ambigüe d'une commande définie par l'utilisateur"
|
||||
|
||||
# DB - Espace final car Vim peut ajouter ": <informations>" à la suite
|
||||
msgid "E492: Not an editor command"
|
||||
msgstr "E492: Commande inconnue "
|
||||
msgstr "E492: Commande inconnue"
|
||||
|
||||
msgid "E493: Backwards range given"
|
||||
msgstr "E493: La plage spécifiée est inversée"
|
||||
@ -1444,8 +1469,7 @@ msgid "E182: Invalid command name"
|
||||
msgstr "E182: Nom de commande invalide"
|
||||
|
||||
msgid "E183: User defined commands must start with an uppercase letter"
|
||||
msgstr ""
|
||||
"E183: Les commandes utilisateur doivent commencer par une majuscule"
|
||||
msgstr "E183: Les commandes utilisateur doivent commencer par une majuscule"
|
||||
|
||||
#, c-format
|
||||
msgid "E184: No such user-defined command: %s"
|
||||
@ -1487,11 +1511,10 @@ msgstr "Pas de fichier d'
|
||||
msgid "Append File"
|
||||
msgstr "Ajouter fichier"
|
||||
|
||||
# DB - todo : le messages d'aide (":h E747") n'a rien à voir...
|
||||
msgid "E747: Cannot change directory, buffer is modifed (add ! to override)"
|
||||
msgstr ""
|
||||
"E747: Tampon modifié : impossible de changer de répertoire (ajoutez ! "
|
||||
"pour passer outre)"
|
||||
"E747: Tampon modifié : impossible de changer de répertoire (ajoutez ! pour "
|
||||
"passer outre)"
|
||||
|
||||
msgid "E186: No previous directory"
|
||||
msgstr "E186: Pas de répertoire précédent"
|
||||
@ -1555,8 +1578,7 @@ msgid "E496: no autocommand buffer number to substitute for \"<abuf>\""
|
||||
msgstr "E496: Aucun numéro de tampon d'autocommande à substituer à \"<abuf>\""
|
||||
|
||||
msgid "E497: no autocommand match name to substitute for \"<amatch>\""
|
||||
msgstr ""
|
||||
"E497: Aucune correspondance d'autocommande à substituer à \"<amatch>\""
|
||||
msgstr "E497: Aucune correspondance d'autocommande à substituer à \"<amatch>\""
|
||||
|
||||
msgid "E498: no :source file name to substitute for \"<sfile>\""
|
||||
msgstr "E498: Aucun nom de fichier :source à substituer à \"<sfile>\""
|
||||
@ -1664,12 +1686,15 @@ msgstr "E601: Imbrication de :try trop importante"
|
||||
msgid "E603: :catch without :try"
|
||||
msgstr "E603: :catch sans :try"
|
||||
|
||||
#. Give up for a ":catch" after ":finally" and ignore it.
|
||||
#. * Just parse.
|
||||
msgid "E604: :catch after :finally"
|
||||
msgstr "E604: :catch après :finally"
|
||||
|
||||
msgid "E606: :finally without :try"
|
||||
msgstr "E606: :finally sans :try"
|
||||
|
||||
#. Give up for a multiple ":finally" and ignore it.
|
||||
msgid "E607: multiple :finally"
|
||||
msgstr "E607: Il ne peut y avoir qu'un seul :finally"
|
||||
|
||||
@ -1679,6 +1704,9 @@ msgstr "E602: :endtry sans :try"
|
||||
msgid "E193: :endfunction not inside a function"
|
||||
msgstr "E193: :endfunction en dehors d'une fonction"
|
||||
|
||||
msgid "E788: Not allowed to edit another buffer now"
|
||||
msgstr "E788: L'édition d'un autre tampon n'est plus permise"
|
||||
|
||||
# DB - TODO : Pas compris le message ni comment le déclencher malgré une visite
|
||||
# dans le code.
|
||||
msgid "tagname"
|
||||
@ -1754,6 +1782,7 @@ msgstr "Vim: Lecture de stdin...\n"
|
||||
msgid "Reading from stdin..."
|
||||
msgstr "Lecture de stdin..."
|
||||
|
||||
#. Re-opening the original file failed!
|
||||
msgid "E202: Conversion made file unreadable!"
|
||||
msgstr "E202: La conversion a rendu le fichier illisible !"
|
||||
|
||||
@ -1831,17 +1860,15 @@ msgid "is read-only (add ! to override)"
|
||||
msgstr "est en lecture seule (ajoutez ! pour passer outre)"
|
||||
|
||||
msgid "E506: Can't write to backup file (add ! to override)"
|
||||
msgstr ""
|
||||
"E506: Impossible d'écrire la copie de secours (! pour passer outre)"
|
||||
msgstr "E506: Impossible d'écrire la copie de secours (! pour passer outre)"
|
||||
|
||||
msgid "E507: Close error for backup file (add ! to override)"
|
||||
msgstr ""
|
||||
"E507: Erreur de fermeture de la copie de secours (! pour passer outre)"
|
||||
msgstr "E507: Erreur de fermeture de la copie de secours (! pour passer outre)"
|
||||
|
||||
msgid "E508: Can't read file for backup (add ! to override)"
|
||||
msgstr ""
|
||||
"E508: Impossible de lire le fichier pour la copie de secours (ajoutez ! "
|
||||
"pour passer outre)"
|
||||
"E508: Impossible de lire le fichier pour la copie de secours (ajoutez ! pour "
|
||||
"passer outre)"
|
||||
|
||||
msgid "E509: Cannot create backup file (add ! to override)"
|
||||
msgstr ""
|
||||
@ -1963,6 +1990,9 @@ msgstr "[noeol]"
|
||||
msgid "[Incomplete last line]"
|
||||
msgstr "[Dernière ligne incomplète]"
|
||||
|
||||
#. don't overwrite messages here
|
||||
#. must give this prompt
|
||||
#. don't use emsg() here, don't want to flush the buffers
|
||||
msgid "WARNING: The file has been changed since reading it!!!"
|
||||
msgstr "ALERTE: Le fichier a été modifié depuis que Vim l'a lu !"
|
||||
|
||||
@ -2044,6 +2074,7 @@ msgstr "--Effac
|
||||
msgid "auto-removing autocommand: %s <buffer=%d>"
|
||||
msgstr "Autocommandes marquées pour auto-suppression : %s <tampon=%d>"
|
||||
|
||||
#. the group doesn't exist
|
||||
#, c-format
|
||||
msgid "E367: No such group: \"%s\""
|
||||
msgstr "E367: Aucun groupe \"%s\""
|
||||
@ -2356,11 +2387,11 @@ msgstr "Chercher une cha
|
||||
msgid "Find & Replace (use '\\\\' to find a '\\')"
|
||||
msgstr "Chercher et remplacer (utilisez '\\\\' pour trouver un '\\')"
|
||||
|
||||
#. We fake this: Use a filter that doesn't select anything and a default
|
||||
#. * file name that won't be used.
|
||||
# DB - Traduction non indispensable puisque le code indique qu'il s'agit d'un
|
||||
# paramétrage bidon afin de sélectionner un répertoire plutôt qu'un
|
||||
# fichier.
|
||||
#. We fake this: Use a filter that doesn't select anything and a default
|
||||
#. * file name that won't be used.
|
||||
msgid "Not Used"
|
||||
msgstr "Non utilisé"
|
||||
|
||||
@ -2434,6 +2465,7 @@ msgstr "Choisir une police - Vim"
|
||||
msgid "Name:"
|
||||
msgstr "Nom :"
|
||||
|
||||
#. create toggle button
|
||||
msgid "Show size in Points"
|
||||
msgstr "Afficher la taille en Points"
|
||||
|
||||
@ -2516,8 +2548,7 @@ msgstr ""
|
||||
"E674: 'printmbcharset' ne peut pas être vide avec un encodage multi-octets"
|
||||
|
||||
msgid "E675: No default font specified for multi-byte printing."
|
||||
msgstr ""
|
||||
"E675: Aucune police par défaut pour l'impression multi-octets"
|
||||
msgstr "E675: Aucune police par défaut pour l'impression multi-octets"
|
||||
|
||||
msgid "E324: Can't open PostScript output file"
|
||||
msgstr "E324: Impossible d'ouvrir le fichier PostScript de sortie"
|
||||
@ -2627,8 +2658,7 @@ msgstr "E567: Aucune connexion cscope"
|
||||
# DB - todo
|
||||
#, c-format
|
||||
msgid "E259: no matches found for cscope query %s of %s"
|
||||
msgstr ""
|
||||
"E259: aucune correspondance trouvée pour la requête cscope %s de %s"
|
||||
msgstr "E259: aucune correspondance trouvée pour la requête cscope %s de %s"
|
||||
|
||||
#, c-format
|
||||
msgid "E469: invalid cscopequickfix flag %c for %c"
|
||||
@ -2663,6 +2693,7 @@ msgstr "E261: Connexion cscope %s introuvable"
|
||||
msgid "cscope connection %s closed"
|
||||
msgstr "connexion cscope %s fermée"
|
||||
|
||||
#. should not reach here
|
||||
msgid "E570: fatal error in cs_manage_matches"
|
||||
msgstr "E570: erreur fatale dans cs_manage_matches"
|
||||
|
||||
@ -2817,12 +2848,33 @@ msgstr "<fen
|
||||
msgid "no such window"
|
||||
msgstr "Cette fenêtre n'existe pas"
|
||||
|
||||
msgid "E265: $_ must be an instance of String"
|
||||
msgstr "E265: $_ doit être une instance de chaîne (String)"
|
||||
|
||||
msgid ""
|
||||
"E266: Sorry, this command is disabled, the Ruby library could not be loaded."
|
||||
msgstr ""
|
||||
"E266: Désolé, commande désactivée : la bibliothèque Ruby n'a pas pu être "
|
||||
"chargée."
|
||||
|
||||
msgid "E267: unexpected return"
|
||||
msgstr "E267: « return » inattendu"
|
||||
|
||||
msgid "E268: unexpected next"
|
||||
msgstr "E268: « next » inattendu"
|
||||
|
||||
msgid "E269: unexpected break"
|
||||
msgstr "E269: « break » inattendu"
|
||||
|
||||
msgid "E270: unexpected redo"
|
||||
msgstr "E270: « redo » inattendu"
|
||||
|
||||
msgid "E271: retry outside of rescue clause"
|
||||
msgstr "E271: « retry » hors d'une clause « rescue »"
|
||||
|
||||
msgid "E272: unhandled exception"
|
||||
msgstr "E272: Exception non prise en charge"
|
||||
|
||||
# DB - todo
|
||||
#, c-format
|
||||
msgid "E273: unknown longjmp status %d"
|
||||
@ -3047,6 +3099,7 @@ msgstr "Vim: Alerte: La sortie ne s'effectue pas sur un terminal\n"
|
||||
msgid "Vim: Warning: Input is not from a terminal\n"
|
||||
msgstr "Vim: Alerte: L'entrée ne se fait pas sur un terminal\n"
|
||||
|
||||
#. just in case..
|
||||
msgid "pre-vimrc command line"
|
||||
msgstr "ligne de commande pre-vimrc"
|
||||
|
||||
@ -3095,7 +3148,8 @@ msgstr ""
|
||||
# DB - todo (VMS uniquement).
|
||||
msgid "where case is ignored prepend / to make flag upper case"
|
||||
msgstr ""
|
||||
"pour lesquels la casse est indifférente (/ pour que le drapeau soit majuscule)"
|
||||
"pour lesquels la casse est indifférente (/ pour que le drapeau soit "
|
||||
"majuscule)"
|
||||
|
||||
msgid ""
|
||||
"\n"
|
||||
@ -3123,7 +3177,8 @@ msgstr "-g\t\tLancer l'interface graphique (comme \"gvim\")"
|
||||
|
||||
msgid "-f or --nofork\tForeground: Don't fork when starting GUI"
|
||||
msgstr ""
|
||||
"-f, --nofork\tPremier-plan : ne pas détacher l'interface graphique du terminal"
|
||||
"-f, --nofork\tPremier-plan : ne pas détacher l'interface graphique du "
|
||||
"terminal"
|
||||
|
||||
msgid "-v\t\t\tVi mode (like \"vi\")"
|
||||
msgstr "-v\t\tMode Vi (comme \"vi\")"
|
||||
@ -3278,7 +3333,8 @@ msgstr "--remote-send <tche>\tEnvoyer <touches>
|
||||
|
||||
msgid "--remote-expr <expr>\tEvaluate <expr> in a Vim server and print result"
|
||||
msgstr ""
|
||||
"--remote-expr <expr>\tÉvaluer <expr> dans un serveur Vim, afficher le résultat"
|
||||
"--remote-expr <expr>\tÉvaluer <expr> dans un serveur Vim, afficher le "
|
||||
"résultat"
|
||||
|
||||
msgid "--serverlist\t\tList available Vim server names and exit"
|
||||
msgstr ""
|
||||
@ -3312,7 +3368,7 @@ msgstr ""
|
||||
|
||||
msgid ""
|
||||
"\n"
|
||||
"Arguments recognised by gvim (Athena version) :\n"
|
||||
"Arguments recognised by gvim (Athena version):\n"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"Arguments reconnus par gvim (version Athena) :\n"
|
||||
@ -3394,8 +3450,7 @@ msgstr ""
|
||||
"-display <display>\tLancer Vim sur ce <display>\t(également : --display)"
|
||||
|
||||
msgid "--role <role>\tSet a unique role to identify the main window"
|
||||
msgstr ""
|
||||
"--role <rôle>\tDonner un rôle pour identifier la fenêtre principale"
|
||||
msgstr "--role <rôle>\tDonner un rôle pour identifier la fenêtre principale"
|
||||
|
||||
msgid "--socketid <xid>\tOpen Vim inside another GTK widget"
|
||||
msgstr "--socketid <xid>\tOuvrir Vim dans un autre widget GTK"
|
||||
@ -3504,7 +3559,8 @@ msgstr "E288: la m
|
||||
|
||||
msgid "E289: input method doesn't support my preedit type"
|
||||
msgstr ""
|
||||
"E289: le type de préédition de Vim n'est pas supporté par la méthode de saisie"
|
||||
"E289: le type de préédition de Vim n'est pas supporté par la méthode de "
|
||||
"saisie"
|
||||
|
||||
# DB - todo
|
||||
msgid "E290: over-the-spot style requires fontset"
|
||||
@ -3576,8 +3632,8 @@ msgid ""
|
||||
"Maybe no changes were made or Vim did not update the swap file."
|
||||
msgstr ""
|
||||
"\n"
|
||||
"Il est possible qu'aucune modif. n'a été faite ou que Vim n'a pas mis à jour "
|
||||
" le fichier d'échange."
|
||||
"Il est possible qu'aucune modif. n'a été faite ou que Vim n'a pas mis à "
|
||||
"jour le fichier d'échange."
|
||||
|
||||
msgid " cannot be used with this version of Vim.\n"
|
||||
msgstr " ne peut pas être utilisé avec cette version de Vim.\n"
|
||||
@ -3651,7 +3707,8 @@ msgstr "E311: R
|
||||
msgid ""
|
||||
"E312: Errors detected while recovering; look for lines starting with ???"
|
||||
msgstr ""
|
||||
"E312: Erreurs lors de la récupération ; examinez les lignes commençant par ???"
|
||||
"E312: Erreurs lors de la récupération ; examinez les lignes commençant "
|
||||
"par ???"
|
||||
|
||||
msgid "See \":help E312\" for more information."
|
||||
msgstr "Consultez \":help E312\" pour plus d'information."
|
||||
@ -3954,6 +4011,8 @@ msgstr "E331: Ajout d'
|
||||
msgid "E332: Separator cannot be part of a menu path"
|
||||
msgstr "E332: Un séparateur ne peut faire partie d'un chemin de menu"
|
||||
|
||||
#. Now we have found the matching menu, and we list the mappings
|
||||
#. Highlight title
|
||||
msgid ""
|
||||
"\n"
|
||||
"--- Menus ---"
|
||||
@ -4048,6 +4107,7 @@ msgstr "Enregistrer un fichier"
|
||||
msgid "Open File dialog"
|
||||
msgstr "Ouvrir un fichier"
|
||||
|
||||
#. TODO: non-GUI file selector here
|
||||
msgid "E338: Sorry, no file browser in console mode"
|
||||
msgstr "E338: Désolé, pas de sélecteur de fichiers en mode console"
|
||||
|
||||
@ -4089,6 +4149,7 @@ msgstr "Bip !"
|
||||
msgid "Vim: preserving files...\n"
|
||||
msgstr "Vim: préservation des fichiers...\n"
|
||||
|
||||
#. close all memfiles, without deleting
|
||||
msgid "Vim: Finished.\n"
|
||||
msgstr "Vim: Fini.\n"
|
||||
|
||||
@ -4175,6 +4236,7 @@ msgstr "E346: Plus de r
|
||||
msgid "E347: No more file \"%s\" found in path"
|
||||
msgstr "E347: Plus de fichier \"%s\" dans 'path'"
|
||||
|
||||
#. Get here when the server can't be found.
|
||||
msgid "Cannot connect to Netbeans #2"
|
||||
msgstr "Impossible de se connecter à Netbeans n°2"
|
||||
|
||||
@ -4184,7 +4246,8 @@ msgstr "Impossible de se connecter
|
||||
#, c-format
|
||||
msgid "E668: Wrong access mode for NetBeans connection info file: \"%s\""
|
||||
msgstr ""
|
||||
"E668: Mode d'accès incorrect au fichier d'infos de connexion NetBeans : \"%s\""
|
||||
"E668: Mode d'accès incorrect au fichier d'infos de connexion NetBeans : \"%s"
|
||||
"\""
|
||||
|
||||
# DB : message d'un appel à perror().
|
||||
msgid "read from Netbeans socket"
|
||||
@ -4259,6 +4322,7 @@ msgid "E748: No previously used register"
|
||||
msgstr "E748: Aucun registre n'a été précédemment utilisé"
|
||||
|
||||
# DB - Question O/N.
|
||||
#. must display the prompt
|
||||
msgid "cannot yank; delete anyway"
|
||||
msgstr "impossible de réaliser une copie ; effacer tout de même"
|
||||
|
||||
@ -4291,6 +4355,7 @@ msgstr "%ld lignes copi
|
||||
msgid "E353: Nothing in register %s"
|
||||
msgstr "E353: Le registre %s est vide"
|
||||
|
||||
#. Highlight title
|
||||
msgid ""
|
||||
"\n"
|
||||
"--- Registers ---"
|
||||
@ -4327,8 +4392,8 @@ msgid ""
|
||||
"Selected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld Chars; %ld of %ld "
|
||||
"Bytes"
|
||||
msgstr ""
|
||||
"%s%ld sur %ld Lignes ; %ld sur %ld Mots ; %ld sur %ld Caractères ; "
|
||||
"%ld sur %ld octets sélectionnés"
|
||||
"%s%ld sur %ld Lignes ; %ld sur %ld Mots ; %ld sur %ld Caractères ; %ld sur "
|
||||
"%ld octets sélectionnés"
|
||||
|
||||
#, c-format
|
||||
msgid "Col %s of %s; Line %ld of %ld; Word %ld of %ld; Byte %ld of %ld"
|
||||
@ -4339,8 +4404,9 @@ msgstr ""
|
||||
msgid ""
|
||||
"Col %s of %s; Line %ld of %ld; Word %ld of %ld; Char %ld of %ld; Byte %ld of "
|
||||
"%ld"
|
||||
msgstr "Colonne %s sur %s ; Ligne %ld sur %ld ; Mot %ld sur %ld ; "
|
||||
"Caractère %ld sur %ld ; Octet %ld sur %ld"
|
||||
msgstr ""
|
||||
"Colonne %s sur %s ; Ligne %ld sur %ld ; Mot %ld sur %ld ; Caractère %ld sur "
|
||||
"%ld ; Octet %ld sur %ld"
|
||||
|
||||
#, c-format
|
||||
msgid "(+%ld for BOM)"
|
||||
@ -4352,9 +4418,8 @@ msgstr "%<%f%h%m%=Page %N"
|
||||
msgid "Thanks for flying Vim"
|
||||
msgstr "Merci d'avoir choisi Vim"
|
||||
|
||||
# DB - Espace final car Vim peut ajouter ": <informations>" à la suite
|
||||
msgid "E518: Unknown option"
|
||||
msgstr "E518: Option inconnue "
|
||||
msgstr "E518: Option inconnue"
|
||||
|
||||
msgid "E519: Option not supported"
|
||||
msgstr "E519: Option non supportée"
|
||||
@ -4376,8 +4441,7 @@ msgid "E529: Cannot set 'term' to empty string"
|
||||
msgstr "E529: 'term' ne doit pas être une chaîne vide"
|
||||
|
||||
msgid "E530: Cannot change term in GUI"
|
||||
msgstr ""
|
||||
"E530: Impossible de modifier term dans l'interface graphique"
|
||||
msgstr "E530: Impossible de modifier term dans l'interface graphique"
|
||||
|
||||
msgid "E531: Use \":gui\" to start the GUI"
|
||||
msgstr "E531: Utilisez \":gui\" pour démarrer l'interface graphique"
|
||||
@ -4553,15 +4617,11 @@ msgstr "ANCHOR_BUF_SIZE trop petit."
|
||||
msgid "I/O ERROR"
|
||||
msgstr "ERREUR d'E/S"
|
||||
|
||||
msgid "...(truncated)"
|
||||
msgstr "...(tronqué)"
|
||||
|
||||
msgid "Message"
|
||||
msgstr "Message"
|
||||
|
||||
msgid "'columns' is not 80, cannot execute external commands"
|
||||
msgstr ""
|
||||
"'columns' ne vaut pas 80, impossible d'exécuter des commandes externes"
|
||||
msgstr "'columns' ne vaut pas 80, impossible d'exécuter des commandes externes"
|
||||
|
||||
msgid "E237: Printer selection failed"
|
||||
msgstr "E237: La sélection de l'imprimante a échoué"
|
||||
@ -5000,6 +5060,16 @@ msgstr "E388: Impossible de trouver la d
|
||||
msgid "E389: Couldn't find pattern"
|
||||
msgstr "E389: Impossible de trouver le motif"
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
"\n"
|
||||
"# Last %sSearch Pattern:\n"
|
||||
"~"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"# Dernier motif de recherche %s :\n"
|
||||
"~"
|
||||
|
||||
msgid "E759: Format error in spell file"
|
||||
msgstr "E759: Erreur de format du fichier orthographique"
|
||||
|
||||
@ -5064,7 +5134,7 @@ msgstr "La conversion dans %s non support
|
||||
|
||||
#, c-format
|
||||
msgid "Conversion in %s not supported"
|
||||
msgstr "La conversion dans %s non supportée"
|
||||
msgstr "La conversion dans %s non supportée"
|
||||
|
||||
#, c-format
|
||||
msgid "Invalid value for FLAG in %s line %d: %s"
|
||||
@ -5074,6 +5144,22 @@ msgstr "Valeur de FLAG invalide dans %s ligne %d : %s"
|
||||
msgid "FLAG after using flags in %s line %d: %s"
|
||||
msgstr "FLAG trouvé après des drapeaux dans %s ligne %d : %s"
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Defining COMPOUNDFORBIDFLAG after PFX item may give wrong results in %s line "
|
||||
"%d"
|
||||
msgstr ""
|
||||
"Définir COMPOUNDFORBIDFLAG après des PFX peut donner des résultats erronés "
|
||||
"dans %s ligne %d"
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Defining COMPOUNDPERMITFLAG after PFX item may give wrong results in %s line "
|
||||
"%d"
|
||||
msgstr ""
|
||||
"Définir COMPOUNDPERMITFLAG après des PFX peut donner des résultats erronés "
|
||||
" dans %s ligne %d"
|
||||
|
||||
#, c-format
|
||||
msgid "Wrong COMPOUNDWORDMAX value in %s line %d: %s"
|
||||
msgstr "Valeur de COMPOUNDWORDMAX erronée dans %s ligne %d : %s"
|
||||
@ -5106,8 +5192,8 @@ msgid ""
|
||||
"Affix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s "
|
||||
"line %d: %s"
|
||||
msgstr ""
|
||||
"Affixe aussi utilisée pour BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST "
|
||||
"dans %s ligne %d : %s"
|
||||
"Affixe aussi utilisée pour BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/"
|
||||
"NOSUGGEST dans %s ligne %d : %s"
|
||||
|
||||
#, c-format
|
||||
msgid "Expected Y or N in %s line %d: %s"
|
||||
@ -5118,13 +5204,6 @@ msgstr "Y ou N attendu dans %s ligne %d : %s"
|
||||
msgid "Broken condition in %s line %d: %s"
|
||||
msgstr "Condition non valide dans %s ligne %d : %s"
|
||||
|
||||
# DB - todo
|
||||
#, c-format
|
||||
msgid "Affix flags ignored when PFXPOSTPONE used in %s line %d: %s"
|
||||
msgstr ""
|
||||
"Drapeaux de l'affixe ignorés quand PFXPOSTPONE est utilisé dans %s ligne %d "
|
||||
": %s"
|
||||
|
||||
#, c-format
|
||||
msgid "Expected REP(SAL) count in %s line %d"
|
||||
msgstr "Nombre de REP(SAL) attendu dans %s ligne %d"
|
||||
@ -5248,8 +5327,10 @@ msgstr "%d noeuds compress
|
||||
msgid "Reading back spell file..."
|
||||
msgstr "Relecture du fichier orthographique"
|
||||
|
||||
#.
|
||||
#. * Go through the trie of good words, soundfold each word and add it to
|
||||
#. * the soundfold trie.
|
||||
#.
|
||||
msgid "Performing soundfolding..."
|
||||
msgstr "Analyse phonétique en cours..."
|
||||
|
||||
@ -5313,6 +5394,7 @@ msgstr "D
|
||||
msgid "Sorry, only %ld suggestions"
|
||||
msgstr "Désolé, seulement %ld suggestions"
|
||||
|
||||
#. avoid more prompt
|
||||
#, c-format
|
||||
msgid "Change \"%.*s\" to:"
|
||||
msgstr "Remplacer \"%.*s\" par :"
|
||||
@ -5594,6 +5676,7 @@ msgstr " Utilisation d'un marqueur avec une casse diff
|
||||
msgid "E429: File \"%s\" does not exist"
|
||||
msgstr "E429: Le fichier \"%s\" n'existe pas"
|
||||
|
||||
#. Highlight title
|
||||
msgid ""
|
||||
"\n"
|
||||
" # TO tag FROM line in file/text"
|
||||
@ -5654,6 +5737,7 @@ msgstr "E436: Aucune entr
|
||||
msgid "E437: terminal capability \"cm\" required"
|
||||
msgstr "E437: capacité de terminal \"cm\" requise"
|
||||
|
||||
#. Highlight title
|
||||
msgid ""
|
||||
"\n"
|
||||
"--- Terminal keys ---"
|
||||
@ -5668,6 +5752,7 @@ msgid "Vim: Error reading input, exiting...\n"
|
||||
msgstr "Vim: Erreur lors de la lecture de l'entrée, sortie...\n"
|
||||
|
||||
# DB - Question O/N.
|
||||
#. must display the prompt
|
||||
msgid "No undo possible; continue anyway"
|
||||
msgstr "Annulation impossible ; continuer"
|
||||
|
||||
@ -5719,6 +5804,10 @@ msgstr "Rien
|
||||
msgid "number changes time"
|
||||
msgstr "numéro modif. instant"
|
||||
|
||||
#, c-format
|
||||
msgid "%ld seconds ago"
|
||||
msgstr "il y a %ld secondes"
|
||||
|
||||
msgid "E439: undo list corrupt"
|
||||
msgstr "E439: la liste d'annulation est corrompue"
|
||||
|
||||
@ -6031,6 +6120,9 @@ msgstr "ALERTE: Windows 95/98/ME d
|
||||
msgid "type :help windows95<Enter> for info on this"
|
||||
msgstr "tapez :help windows95<Entrée> pour plus d'information"
|
||||
|
||||
msgid "Already only one window"
|
||||
msgstr "Il n'y a déjà plus qu'une fenêtre"
|
||||
|
||||
msgid "E441: There is no preview window"
|
||||
msgstr "E441: Il n'y a pas de fenêtre de prévisualisation"
|
||||
|
||||
@ -6043,9 +6135,6 @@ msgstr "E443: Rotation impossible quand une autre fen
|
||||
msgid "E444: Cannot close last window"
|
||||
msgstr "E444: Impossible de fermer la dernière fenêtre"
|
||||
|
||||
msgid "Already only one window"
|
||||
msgstr "Il n'y a déjà plus qu'une fenêtre"
|
||||
|
||||
msgid "E445: Other window contains changes"
|
||||
msgstr "E445: Les modifications de l'autre fenêtre n'ont pas été enregistrées"
|
||||
|
||||
@ -6079,6 +6168,7 @@ msgstr "&Comparer avec Vim"
|
||||
msgid "Edit with &Vim"
|
||||
msgstr "Éditer dans &Vim"
|
||||
|
||||
#. Now concatenate
|
||||
msgid "Edit with existing Vim - "
|
||||
msgstr "Éditer dans le Vim existant - "
|
||||
|
||||
@ -6088,8 +6178,8 @@ msgstr "
|
||||
# DB - MessageBox win32, la longueur n'est pas un problème !
|
||||
msgid "Error creating process: Check if gvim is in your path!"
|
||||
msgstr ""
|
||||
"Erreur de création du processus : "
|
||||
"vérifiez que gvim est bien dans votre chemin !"
|
||||
"Erreur de création du processus : vérifiez que gvim est bien dans votre "
|
||||
"chemin !"
|
||||
|
||||
msgid "gvimext.dll error"
|
||||
msgstr "Erreur de gvimext.dll"
|
||||
@ -6102,6 +6192,10 @@ msgstr "Le chemin est trop long !"
|
||||
msgid "--No lines in buffer--"
|
||||
msgstr "--Le tampon est vide--"
|
||||
|
||||
#.
|
||||
#. * The error messages that can be shared are included here.
|
||||
#. * Excluded are errors that are only used once and debugging messages.
|
||||
#.
|
||||
msgid "E470: Command aborted"
|
||||
msgstr "E470: Commande annulée"
|
||||
|
||||
@ -6338,7 +6432,8 @@ msgstr "E46: La variable \"%s\" est en lecture seule"
|
||||
|
||||
#, c-format
|
||||
msgid "E46: Cannot set variable in the sandbox: \"%s\""
|
||||
msgstr "E46: Impossible de modifier une variable depuis le bac à sable : \"%s\""
|
||||
msgstr ""
|
||||
"E46: Impossible de modifier une variable depuis le bac à sable : \"%s\""
|
||||
|
||||
msgid "E47: Error while reading errorfile"
|
||||
msgstr "E47: Erreur lors de la lecture du fichier d'erreurs"
|
||||
@ -6429,7 +6524,7 @@ msgstr "E682: D
|
||||
msgid "E139: File is loaded in another buffer"
|
||||
msgstr "E139: Le fichier est chargé dans un autre tampon"
|
||||
|
||||
#,c-format
|
||||
#, c-format
|
||||
msgid "E764: Option '%s' is not set"
|
||||
msgstr "E764: L'option '%s' n'est pas activée"
|
||||
|
||||
|
@ -5096,8 +5096,8 @@ msgid "E397: Filename required"
|
||||
msgstr "E397: Nome file necessario"
|
||||
|
||||
#, c-format
|
||||
msgid "E747: Missing ']': %s"
|
||||
msgstr "E747: Manca ']': %s"
|
||||
msgid "E789: Missing ']': %s"
|
||||
msgstr "E789: Manca ']': %s"
|
||||
|
||||
#, c-format
|
||||
msgid "E398: Missing '=': %s"
|
||||
|
@ -5109,8 +5109,8 @@ msgid "E397: Filename required"
|
||||
msgstr "E397: ファイル名が必要です"
|
||||
|
||||
#, c-format
|
||||
msgid "E747: Missing ']': %s"
|
||||
msgstr "E747: ']' がありません: %s"
|
||||
msgid "E789: Missing ']': %s"
|
||||
msgstr "E789: ']' がありません: %s"
|
||||
|
||||
#, c-format
|
||||
msgid "E398: Missing '=': %s"
|
||||
|
@ -5109,8 +5109,8 @@ msgid "E397: Filename required"
|
||||
msgstr "E397: ファイル名が必要です"
|
||||
|
||||
#, c-format
|
||||
msgid "E747: Missing ']': %s"
|
||||
msgstr "E747: ']' がありません: %s"
|
||||
msgid "E789: Missing ']': %s"
|
||||
msgstr "E789: ']' がありません: %s"
|
||||
|
||||
#, c-format
|
||||
msgid "E398: Missing '=': %s"
|
||||
|
@ -5101,8 +5101,8 @@ msgid "E397: Filename required"
|
||||
msgstr "E397: Wymagana nazwa pliku"
|
||||
|
||||
#, c-format
|
||||
msgid "E747: Missing ']': %s"
|
||||
msgstr "E747: Brak ']': %s"
|
||||
msgid "E789: Missing ']': %s"
|
||||
msgstr "E789: Brak ']': %s"
|
||||
|
||||
#, c-format
|
||||
msgid "E398: Missing '=': %s"
|
||||
|
@ -5101,8 +5101,8 @@ msgid "E397: Filename required"
|
||||
msgstr "E397: Wymagana nazwa pliku"
|
||||
|
||||
#, c-format
|
||||
msgid "E747: Missing ']': %s"
|
||||
msgstr "E747: Brak ']': %s"
|
||||
msgid "E789: Missing ']': %s"
|
||||
msgstr "E789: Brak ']': %s"
|
||||
|
||||
#, c-format
|
||||
msgid "E398: Missing '=': %s"
|
||||
|
@ -5101,8 +5101,8 @@ msgid "E397: Filename required"
|
||||
msgstr "E397: Wymagana nazwa pliku"
|
||||
|
||||
#, c-format
|
||||
msgid "E747: Missing ']': %s"
|
||||
msgstr "E747: Brak ']': %s"
|
||||
msgid "E789: Missing ']': %s"
|
||||
msgstr "E789: Brak ']': %s"
|
||||
|
||||
#, c-format
|
||||
msgid "E398: Missing '=': %s"
|
||||
|
@ -4871,8 +4871,8 @@ msgid "E397: Filename required"
|
||||
msgstr "E397: Vyžadovaný názov súboru"
|
||||
|
||||
#, c-format
|
||||
msgid "E747: Missing ']': %s"
|
||||
msgstr "E747: Chýba ']': %s"
|
||||
msgid "E789: Missing ']': %s"
|
||||
msgstr "E789: Chýba ']': %s"
|
||||
|
||||
#, c-format
|
||||
msgid "E398: Missing '=': %s"
|
||||
|
@ -4871,8 +4871,8 @@ msgid "E397: Filename required"
|
||||
msgstr "E397: Vy¾adovaný názov súboru"
|
||||
|
||||
#, c-format
|
||||
msgid "E747: Missing ']': %s"
|
||||
msgstr "E747: Chýba ']': %s"
|
||||
msgid "E789: Missing ']': %s"
|
||||
msgstr "E789: Chýba ']': %s"
|
||||
|
||||
#, c-format
|
||||
msgid "E398: Missing '=': %s"
|
||||
|
@ -5066,8 +5066,8 @@ msgid "E397: Filename required"
|
||||
msgstr "E397: Filnamn krävs"
|
||||
|
||||
#, c-format
|
||||
msgid "E747: Missing ']': %s"
|
||||
msgstr "E747: Saknar ']': %s"
|
||||
msgid "E789: Missing ']': %s"
|
||||
msgstr "E789: Saknar ']': %s"
|
||||
|
||||
#, c-format
|
||||
msgid "E398: Missing '=': %s"
|
||||
|
@ -5056,8 +5056,8 @@ msgid "E397: Filename required"
|
||||
msgstr "E397: 需要文件名称"
|
||||
|
||||
#, c-format
|
||||
msgid "E747: Missing ']': %s"
|
||||
msgstr "E747: 缺少 ']': %s"
|
||||
msgid "E789: Missing ']': %s"
|
||||
msgstr "E789: 缺少 ']': %s"
|
||||
|
||||
#, c-format
|
||||
msgid "E398: Missing '=': %s"
|
||||
|
@ -5056,8 +5056,8 @@ msgid "E397: Filename required"
|
||||
msgstr "E397: 需要文件名称"
|
||||
|
||||
#, c-format
|
||||
msgid "E747: Missing ']': %s"
|
||||
msgstr "E747: ȱÉÙ ']': %s"
|
||||
msgid "E789: Missing ']': %s"
|
||||
msgstr "E789: ȱÉÙ ']': %s"
|
||||
|
||||
#, c-format
|
||||
msgid "E398: Missing '=': %s"
|
||||
|
@ -5056,8 +5056,8 @@ msgid "E397: Filename required"
|
||||
msgstr "E397: 需要文件名称"
|
||||
|
||||
#, c-format
|
||||
msgid "E747: Missing ']': %s"
|
||||
msgstr "E747: ȱÉÙ ']': %s"
|
||||
msgid "E789: Missing ']': %s"
|
||||
msgstr "E789: ȱÉÙ ']': %s"
|
||||
|
||||
#, c-format
|
||||
msgid "E398: Missing '=': %s"
|
||||
|
@ -30,7 +30,7 @@ static int pum_col; /* left column of pum */
|
||||
|
||||
static int pum_do_redraw = FALSE; /* do redraw anyway */
|
||||
|
||||
static int pum_set_selected __ARGS((int n));
|
||||
static int pum_set_selected __ARGS((int n, int repeat));
|
||||
|
||||
#define PUM_DEF_HEIGHT 10
|
||||
#define PUM_DEF_WIDTH 15
|
||||
@ -59,6 +59,7 @@ pum_display(array, size, selected)
|
||||
int height;
|
||||
int col;
|
||||
int above_row = cmdline_row;
|
||||
int redo_count = 0;
|
||||
|
||||
redo:
|
||||
def_width = PUM_DEF_WIDTH;
|
||||
@ -209,8 +210,9 @@ redo:
|
||||
pum_size = size;
|
||||
|
||||
/* Set selected item and redraw. If the window size changed need to redo
|
||||
* the positioning. */
|
||||
if (pum_set_selected(selected))
|
||||
* the positioning. Limit this to two times, when there is not much
|
||||
* room the window size will keep changing. */
|
||||
if (pum_set_selected(selected, redo_count) && ++redo_count <= 2)
|
||||
goto redo;
|
||||
}
|
||||
|
||||
@ -338,12 +340,17 @@ pum_get_selected()
|
||||
/*
|
||||
* Set the index of the currently selected item. The menu will scroll when
|
||||
* necessary. When "n" is out of range don't scroll.
|
||||
* This may be repeated when the preview window is used:
|
||||
* "repeat" == 0: open preview window normally
|
||||
* "repeat" == 1: open preview window but don't set the size
|
||||
* "repeat" == 2: don't open preview window
|
||||
* Returns TRUE when the window was resized and the location of the popup menu
|
||||
* must be recomputed.
|
||||
*/
|
||||
static int
|
||||
pum_set_selected(n)
|
||||
pum_set_selected(n, repeat)
|
||||
int n;
|
||||
int repeat;
|
||||
{
|
||||
int resized = FALSE;
|
||||
int context = pum_height / 2;
|
||||
@ -404,10 +411,14 @@ pum_set_selected(n)
|
||||
/*
|
||||
* Show extra info in the preview window if there is something and
|
||||
* 'completeopt' contains "preview".
|
||||
* Skip this when tried twice already.
|
||||
* Skip this also when there is not much room.
|
||||
* NOTE: Be very careful not to sync undo!
|
||||
*/
|
||||
if (pum_array[pum_selected].pum_info != NULL
|
||||
&& vim_strchr(p_cot, 'p') != NULL)
|
||||
&& Rows > 10
|
||||
&& repeat <= 1
|
||||
&& vim_strchr(p_cot, 'p') != NULL)
|
||||
{
|
||||
win_T *curwin_save = curwin;
|
||||
int res = OK;
|
||||
@ -470,12 +481,15 @@ pum_set_selected(n)
|
||||
|
||||
/* Increase the height of the preview window to show the
|
||||
* text, but no more than 'previewheight' lines. */
|
||||
if (lnum > p_pvh)
|
||||
lnum = p_pvh;
|
||||
if (curwin->w_height < lnum)
|
||||
if (repeat == 0)
|
||||
{
|
||||
win_setheight((int)lnum);
|
||||
resized = TRUE;
|
||||
if (lnum > p_pvh)
|
||||
lnum = p_pvh;
|
||||
if (curwin->w_height < lnum)
|
||||
{
|
||||
win_setheight((int)lnum);
|
||||
resized = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
curbuf->b_changed = 0;
|
||||
|
@ -4528,7 +4528,7 @@ syn_cmd_keyword(eap, syncing)
|
||||
break;
|
||||
if (p[1] == NUL)
|
||||
{
|
||||
EMSG2(_("E747: Missing ']': %s"), kw);
|
||||
EMSG2(_("E789: Missing ']': %s"), kw);
|
||||
kw = p + 2; /* skip over the NUL */
|
||||
break;
|
||||
}
|
||||
@ -6329,9 +6329,9 @@ init_highlight(both, reset)
|
||||
* depend on the number of colors available. */
|
||||
if (t_colors > 8)
|
||||
do_highlight((char_u *)(*p_bg == 'l' ? "Visual ctermbg=LightGrey"
|
||||
: "Visual ctermbg=DarkGrey"), reset, TRUE);
|
||||
: "Visual ctermbg=DarkGrey"), FALSE, TRUE);
|
||||
else
|
||||
do_highlight((char_u *)"Visual cterm=reverse", reset, TRUE);
|
||||
do_highlight((char_u *)"Visual cterm=reverse", FALSE, TRUE);
|
||||
|
||||
#ifdef FEAT_SYN_HL
|
||||
/*
|
||||
|
@ -3356,7 +3356,6 @@ expand_tag_fname(fname, tag_fname, expand)
|
||||
xpc.xp_context = EXPAND_FILES;
|
||||
expanded_fname = ExpandOne(&xpc, (char_u *)fname, NULL,
|
||||
WILD_LIST_NOTFOUND|WILD_SILENT, WILD_EXPAND_FREE);
|
||||
ExpandCleanup(&xpc);
|
||||
if (expanded_fname != NULL)
|
||||
fname = expanded_fname;
|
||||
}
|
||||
|
@ -35,6 +35,6 @@
|
||||
*/
|
||||
#define VIM_VERSION_NODOT "vim70e"
|
||||
#define VIM_VERSION_SHORT "7.0e"
|
||||
#define VIM_VERSION_MEDIUM "7.0e03 BETA"
|
||||
#define VIM_VERSION_LONG "VIM - Vi IMproved 7.0e03 BETA (2006 Apr 19)"
|
||||
#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.0e03 BETA (2006 Apr 19, compiled "
|
||||
#define VIM_VERSION_MEDIUM "7.0e04 BETA"
|
||||
#define VIM_VERSION_LONG "VIM - Vi IMproved 7.0e04 BETA (2006 Apr 20)"
|
||||
#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.0e04 BETA (2006 Apr 20, compiled "
|
||||
|
Loading…
x
Reference in New Issue
Block a user