add various usefull plugins from vim.org and sourfeforge
This commit is contained in:
parent
eb40e8aa1a
commit
90acee7e47
407 changed files with 171529 additions and 0 deletions
4122
vim_plugins_src/VOoM-4.3/VOoM-4.3/doc/voom.txt
Normal file
4122
vim_plugins_src/VOoM-4.3/VOoM-4.3/doc/voom.txt
Normal file
File diff suppressed because it is too large
Load diff
2936
vim_plugins_src/VOoM-4.3/VOoM-4.3/plugin/voom.vim
Normal file
2936
vim_plugins_src/VOoM-4.3/VOoM-4.3/plugin/voom.vim
Normal file
File diff suppressed because it is too large
Load diff
1957
vim_plugins_src/VOoM-4.3/VOoM-4.3/plugin/voom/voom.py
Normal file
1957
vim_plugins_src/VOoM-4.3/VOoM-4.3/plugin/voom/voom.py
Normal file
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,436 @@
|
||||||
|
# voom_mode_asciidoc.py
|
||||||
|
# Last Modified: 2012-04-02
|
||||||
|
# VOoM -- Vim two-pane outliner, plugin for Python-enabled Vim version 7.x
|
||||||
|
# Website: http://www.vim.org/scripts/script.php?script_id=2657
|
||||||
|
# Author: Vlad Irnov (vlad DOT irnov AT gmail DOT com)
|
||||||
|
# License: This program is free software. It comes without any warranty,
|
||||||
|
# to the extent permitted by applicable law. You can redistribute it
|
||||||
|
# and/or modify it under the terms of the Do What The Fuck You Want To
|
||||||
|
# Public License, Version 2, as published by Sam Hocevar.
|
||||||
|
# See http://sam.zoy.org/wtfpl/COPYING for more details.
|
||||||
|
|
||||||
|
"""
|
||||||
|
VOoM markup mode for AsciiDoc document and section titles.
|
||||||
|
See |voom_mode_asciidoc|, ../../doc/voom.txt#*voom_mode_asciidoc*
|
||||||
|
"""
|
||||||
|
|
||||||
|
### NOTES
|
||||||
|
#
|
||||||
|
# When outline operation changes level, it has to deal with two ambiguities:
|
||||||
|
# a) Level 1-5 headline can use 2-style (underline) or 1-style (=).
|
||||||
|
# b) 1-style can have or not have closing ='s.
|
||||||
|
# To determine current preferences: check first headline at level <6 and check
|
||||||
|
# first headline with =. This must be done in hook_makeOutline().
|
||||||
|
# (Save in VO, similar to reST mode.) Cannot be done during outline operation,
|
||||||
|
# that is in hook_doBodyAfterOop().
|
||||||
|
# Defaults: use underline, use closing ='s.
|
||||||
|
|
||||||
|
try:
|
||||||
|
import vim
|
||||||
|
if vim.eval('exists("g:voom_asciidoc_do_blanks")')=='1' and vim.eval("g:voom_asciidoc_do_blanks")=='0':
|
||||||
|
DO_BLANKS = False
|
||||||
|
else:
|
||||||
|
DO_BLANKS = True
|
||||||
|
except ImportError:
|
||||||
|
DO_BLANKS = True
|
||||||
|
|
||||||
|
import re
|
||||||
|
# regex for 1-style headline, assumes there is no trailing whitespace
|
||||||
|
HEAD_MATCH = re.compile(r'^(=+)(\s+\S.*?)(\s+\1)?$').match
|
||||||
|
|
||||||
|
# underline chars
|
||||||
|
ADS_LEVELS = {'=':1, '-':2, '~':3, '^':4, '+':5}
|
||||||
|
LEVELS_ADS = {1:'=', 2:'-', 3:'~', 4:'^', 5:'+'}
|
||||||
|
|
||||||
|
# DelimitedBlock chars, headines are ignored inside such blocks
|
||||||
|
BLOCK_CHARS = {'/':0, '+':0, '-':0, '.':0, '*':0, '_':0, '=':0}
|
||||||
|
|
||||||
|
# Combine all signficant chars. Need one of these at start of line for a
|
||||||
|
# headline or DelimitedBlock to occur.
|
||||||
|
CHARS = {}
|
||||||
|
for k in ADS_LEVELS:
|
||||||
|
CHARS[k] = 0
|
||||||
|
for k in BLOCK_CHARS:
|
||||||
|
CHARS[k] = 0
|
||||||
|
|
||||||
|
|
||||||
|
def hook_makeOutline(VO, blines):
|
||||||
|
"""Return (tlines, bnodes, levels) for Body lines blines.
|
||||||
|
blines is either Vim buffer object (Body) or list of buffer lines.
|
||||||
|
"""
|
||||||
|
ENC = VO.enc
|
||||||
|
Z = len(blines)
|
||||||
|
tlines, bnodes, levels = [], [], []
|
||||||
|
tlines_add, bnodes_add, levels_add = tlines.append, bnodes.append, levels.append
|
||||||
|
|
||||||
|
# trailing whitespace is always removed with rstrip()
|
||||||
|
# if headline is precedeed by [AAA] and/or [[AAA]], bnode is set to their lnum
|
||||||
|
#
|
||||||
|
# 1-style, overides 2-style
|
||||||
|
# [[AAA]] L3, blines[i-2]
|
||||||
|
# [yyy] L2, blines[i-1]
|
||||||
|
# == head == L1, blines[i] -- current line, closing = are optional
|
||||||
|
#
|
||||||
|
# 2-style (underline)
|
||||||
|
# [[AAA]] L4, blines[i-3]
|
||||||
|
# [yyy] L3, blines[i-2]
|
||||||
|
# head L2, blines[i-1] -- title line, many restrictions on the format
|
||||||
|
# ---- L1, blines[i] -- current line
|
||||||
|
|
||||||
|
|
||||||
|
# Set this the first time a headline with level 1-5 is encountered.
|
||||||
|
# 0 or 1 -- False, use 2-style (default); 2 -- True, use 1-style
|
||||||
|
useOne = 0
|
||||||
|
# Set this the first time headline in 1-style is encountered.
|
||||||
|
# 0 or 1 -- True, use closing ='s (default); 2 -- False, do not use closing ='s
|
||||||
|
useOneClose = 0
|
||||||
|
|
||||||
|
gotHead = False
|
||||||
|
inBlock = False # True if inside DelimitedBlock, the value is the char
|
||||||
|
headI = -2 # idx of the last line that is part of a headline
|
||||||
|
blockI = -2 # idx of the last line where a DelimitedBlock ended
|
||||||
|
m = None # match object for 1-style regex
|
||||||
|
|
||||||
|
for i in xrange(Z):
|
||||||
|
L1 = blines[i].rstrip()
|
||||||
|
if not L1 or not L1[0] in CHARS:
|
||||||
|
continue
|
||||||
|
ch = L1[0]
|
||||||
|
|
||||||
|
if inBlock:
|
||||||
|
if inBlock==ch and len(L1)>3 and L1.lstrip(ch)=='':
|
||||||
|
inBlock = False
|
||||||
|
blockI = i
|
||||||
|
continue
|
||||||
|
|
||||||
|
# 1-style headline
|
||||||
|
if ch == '=' and L1.strip('='):
|
||||||
|
m = HEAD_MATCH(L1)
|
||||||
|
if m:
|
||||||
|
gotHead = True
|
||||||
|
headI_ = headI
|
||||||
|
headI = i
|
||||||
|
lev = len(m.group(1))
|
||||||
|
head = m.group(2).strip()
|
||||||
|
bnode = i+1
|
||||||
|
|
||||||
|
# current line is an underline
|
||||||
|
# the previous, underlined line (L2) is not a headline if it:
|
||||||
|
# is not exactly the length of underline +/- 2
|
||||||
|
# is already part of in the previous headline
|
||||||
|
# looks like an underline or a delimited block line
|
||||||
|
# is [[AAA]] or [AAA] (BlockID or Attribute List)
|
||||||
|
# starts with . (Block Title, they have no level)
|
||||||
|
# starts with // (comment line)
|
||||||
|
# starts with tab (don't know why, spaces are ok)
|
||||||
|
# is only 1 chars (avoids confusion with --, as in Vim syntax, not as in AsciiDoc)
|
||||||
|
if not gotHead and ch in ADS_LEVELS and L1.lstrip(ch)=='' and i > 0:
|
||||||
|
L2 = blines[i-1].rstrip()
|
||||||
|
z2 = len(L2.decode(ENC,'replace'))
|
||||||
|
z1 = len(L1)
|
||||||
|
if (L2 and
|
||||||
|
(-3 < z2 - z1 < 3) and z1 > 1 and z2 > 1 and
|
||||||
|
headI != i-1 and
|
||||||
|
not ((L2[0] in CHARS) and L2.lstrip(L2[0])=='') and
|
||||||
|
not (L2.startswith('[') and L2.endswith(']')) and
|
||||||
|
not L2.startswith('.') and
|
||||||
|
not L2.startswith('\t') and
|
||||||
|
not (L2.startswith('//') and not L2.startswith('///'))
|
||||||
|
):
|
||||||
|
gotHead = True
|
||||||
|
headI_ = headI
|
||||||
|
headI = i
|
||||||
|
lev = ADS_LEVELS[ch]
|
||||||
|
head = L2.strip()
|
||||||
|
bnode = i # lnum of previous line (L2)
|
||||||
|
|
||||||
|
if gotHead and bnode > 1:
|
||||||
|
# decrement bnode if preceding lines are [[AAA]] or [AAA] lines
|
||||||
|
# that is set bnode to the topmost [[AAA]] or [AAA] line number
|
||||||
|
j_ = bnode-2 # idx of line before the title line
|
||||||
|
L3 = blines[bnode-2].rstrip()
|
||||||
|
while L3.startswith('[') and L3.endswith(']'):
|
||||||
|
bnode -= 1
|
||||||
|
if bnode > 1:
|
||||||
|
L3 = blines[bnode-2].rstrip()
|
||||||
|
else:
|
||||||
|
break
|
||||||
|
|
||||||
|
# headline must be preceded by a blank line unless:
|
||||||
|
# it's line 1 (j == -1)
|
||||||
|
# headline is preceded by [AAA] or [[AAA]] lines (j != j_)
|
||||||
|
# previous line is a headline (headI_ == j)
|
||||||
|
# previous line is the end of a DelimitedBlock (blockI == j)
|
||||||
|
j = bnode-2
|
||||||
|
if DO_BLANKS and j==j_ and j > -1:
|
||||||
|
L3 = blines[j].rstrip()
|
||||||
|
if L3 and headI_ != j and blockI != j:
|
||||||
|
# skip over any adjacent comment lines
|
||||||
|
while L3.startswith('//') and not L3.startswith('///'):
|
||||||
|
j -= 1
|
||||||
|
if j > -1:
|
||||||
|
L3 = blines[j].rstrip()
|
||||||
|
else:
|
||||||
|
L3 = ''
|
||||||
|
if L3 and headI_ != j and blockI != j:
|
||||||
|
gotHead = False
|
||||||
|
headI = headI_
|
||||||
|
|
||||||
|
# start of DelimitedBlock
|
||||||
|
if not gotHead and ch in BLOCK_CHARS and len(L1)>3 and L1.lstrip(ch)=='':
|
||||||
|
inBlock = ch
|
||||||
|
continue
|
||||||
|
|
||||||
|
if gotHead:
|
||||||
|
gotHead = False
|
||||||
|
# save style info for first headline and first 1-style headline
|
||||||
|
if not useOne and lev < 6:
|
||||||
|
if m:
|
||||||
|
useOne = 2
|
||||||
|
else:
|
||||||
|
useOne = 1
|
||||||
|
if not useOneClose and m:
|
||||||
|
if m.group(3):
|
||||||
|
useOneClose = 1
|
||||||
|
else:
|
||||||
|
useOneClose = 2
|
||||||
|
# make outline
|
||||||
|
tline = ' %s|%s' %('. '*(lev-1), head)
|
||||||
|
tlines_add(tline)
|
||||||
|
bnodes_add(bnode)
|
||||||
|
levels_add(lev)
|
||||||
|
|
||||||
|
# don't clobber these when parsing clipboard during Paste
|
||||||
|
# which is the only time blines is not Body
|
||||||
|
if blines is VO.Body:
|
||||||
|
VO.useOne = useOne == 2
|
||||||
|
VO.useOneClose = useOneClose < 2
|
||||||
|
|
||||||
|
return (tlines, bnodes, levels)
|
||||||
|
|
||||||
|
|
||||||
|
def hook_newHeadline(VO, level, blnum, tlnum):
|
||||||
|
"""Return (tree_head, bodyLines).
|
||||||
|
tree_head is new headline string in Tree buffer (text after |).
|
||||||
|
bodyLines is list of lines to insert in Body buffer.
|
||||||
|
"""
|
||||||
|
tree_head = 'NewHeadline'
|
||||||
|
if level < 6 and not VO.useOne:
|
||||||
|
bodyLines = [tree_head, LEVELS_ADS[level]*11, '']
|
||||||
|
else:
|
||||||
|
lev = '='*level
|
||||||
|
if VO.useOneClose:
|
||||||
|
bodyLines = ['%s %s %s' %(lev, tree_head, lev), '']
|
||||||
|
else:
|
||||||
|
bodyLines = ['%s %s' %(lev, tree_head), '']
|
||||||
|
|
||||||
|
# Add blank line when inserting after non-blank Body line.
|
||||||
|
if VO.Body[blnum-1].strip():
|
||||||
|
bodyLines[0:0] = ['']
|
||||||
|
|
||||||
|
return (tree_head, bodyLines)
|
||||||
|
|
||||||
|
|
||||||
|
#def hook_changeLevBodyHead(VO, h, levDelta):
|
||||||
|
# DO NOT CREATE THIS HOOK
|
||||||
|
|
||||||
|
|
||||||
|
def hook_doBodyAfterOop(VO, oop, levDelta, blnum1, tlnum1, blnum2, tlnum2, blnumCut, tlnumCut):
|
||||||
|
# this is instead of hook_changeLevBodyHead()
|
||||||
|
|
||||||
|
# Based on Markdown mode function.
|
||||||
|
# Inserts blank separator lines if missing.
|
||||||
|
|
||||||
|
#print oop, levDelta, blnum1, tlnum1, blnum2, tlnum2, tlnumCut, blnumCut
|
||||||
|
Body = VO.Body
|
||||||
|
Z = len(Body)
|
||||||
|
bnodes, levels = VO.bnodes, VO.levels
|
||||||
|
ENC = VO.enc
|
||||||
|
|
||||||
|
# blnum1 blnum2 is first and last lnums of Body region pasted, inserted
|
||||||
|
# during up/down, or promoted/demoted.
|
||||||
|
if blnum1:
|
||||||
|
assert blnum1 == bnodes[tlnum1-1]
|
||||||
|
if tlnum2 < len(bnodes):
|
||||||
|
assert blnum2 == bnodes[tlnum2]-1
|
||||||
|
else:
|
||||||
|
assert blnum2 == Z
|
||||||
|
|
||||||
|
# blnumCut is Body lnum after which a region was removed during 'cut',
|
||||||
|
# 'up', 'down'. Need this to check if there is blank line between nodes
|
||||||
|
# used to be separated by the cut/moved region.
|
||||||
|
if blnumCut:
|
||||||
|
if tlnumCut < len(bnodes):
|
||||||
|
assert blnumCut == bnodes[tlnumCut]-1
|
||||||
|
else:
|
||||||
|
assert blnumCut == Z
|
||||||
|
|
||||||
|
# Total number of added lines minus number of deleted lines.
|
||||||
|
b_delta = 0
|
||||||
|
|
||||||
|
### After 'cut' or 'up': insert blank line if there is none
|
||||||
|
# between the nodes used to be separated by the cut/moved region.
|
||||||
|
if DO_BLANKS and (oop=='cut' or oop=='up') and (0 < blnumCut < Z) and Body[blnumCut-1].strip():
|
||||||
|
Body[blnumCut:blnumCut] = ['']
|
||||||
|
update_bnodes(VO, tlnumCut+1 ,1)
|
||||||
|
b_delta+=1
|
||||||
|
|
||||||
|
if oop=='cut':
|
||||||
|
return
|
||||||
|
|
||||||
|
### Make sure there is blank line after the last node in the region:
|
||||||
|
# insert blank line after blnum2 if blnum2 is not blank, that is insert
|
||||||
|
# blank line before bnode at tlnum2+1.
|
||||||
|
if DO_BLANKS and blnum2 < Z and Body[blnum2-1].strip():
|
||||||
|
Body[blnum2:blnum2] = ['']
|
||||||
|
update_bnodes(VO, tlnum2+1 ,1)
|
||||||
|
b_delta+=1
|
||||||
|
|
||||||
|
### Change levels and/or formats of headlines in the affected region.
|
||||||
|
# Always do this after Paste, even if level is unchanged -- format can
|
||||||
|
# be different when pasting from other outlines.
|
||||||
|
# Examine each headline, from bottom to top, and change level and/or format.
|
||||||
|
# To change from 1-style to 2-style:
|
||||||
|
# strip ='s, strip whitespace;
|
||||||
|
# insert underline.
|
||||||
|
# To change from 2-style to 1-style:
|
||||||
|
# delete underline;
|
||||||
|
# insert ='s.
|
||||||
|
# Update bnodes after inserting or deleting a line.
|
||||||
|
#
|
||||||
|
# NOTE: bnode can be [[AAA]] or [AAA] line, we check for that and adjust it
|
||||||
|
# to point to the headline text line
|
||||||
|
#
|
||||||
|
# 1-style 2-style
|
||||||
|
#
|
||||||
|
# L0 L0 Body[bln-2]
|
||||||
|
# == head L1 head L1 <--bnode Body[bln-1] (not always the actual bnode)
|
||||||
|
# L2 ---- L2 Body[bln]
|
||||||
|
# L3 L3 Body[bln+1]
|
||||||
|
|
||||||
|
if levDelta or oop=='paste':
|
||||||
|
for i in xrange(tlnum2, tlnum1-1, -1):
|
||||||
|
# required level (VO.levels has been updated)
|
||||||
|
lev = levels[i-1]
|
||||||
|
# current level from which to change to lev
|
||||||
|
lev_ = lev - levDelta
|
||||||
|
|
||||||
|
# Body headline (bnode) and the next line
|
||||||
|
bln = bnodes[i-1]
|
||||||
|
L1 = Body[bln-1].rstrip()
|
||||||
|
# bnode can point to the tompost [AAA] or [[AAA]] line
|
||||||
|
# increment bln until the actual headline (title line) is found
|
||||||
|
while L1.startswith('[') and L1.endswith(']'):
|
||||||
|
bln += 1
|
||||||
|
L1 = Body[bln-1].rstrip()
|
||||||
|
# the underline line
|
||||||
|
if bln+1 < len(Body):
|
||||||
|
L2 = Body[bln].rstrip()
|
||||||
|
else:
|
||||||
|
L2 = ''
|
||||||
|
|
||||||
|
# get current headline format
|
||||||
|
hasOne, hasOneClose = False, VO.useOneClose
|
||||||
|
theHead = L1
|
||||||
|
if L1.startswith('='):
|
||||||
|
m = HEAD_MATCH(L1)
|
||||||
|
if m:
|
||||||
|
hasOne = True
|
||||||
|
# headline without ='s but with whitespace around it preserved
|
||||||
|
theHead = m.group(2)
|
||||||
|
theclose = m.group(3)
|
||||||
|
if theclose:
|
||||||
|
hasOneClose = True
|
||||||
|
theHead += theclose.rstrip('=')
|
||||||
|
else:
|
||||||
|
hasOneClose = False
|
||||||
|
|
||||||
|
# get desired headline format
|
||||||
|
if oop=='paste':
|
||||||
|
if lev > 5:
|
||||||
|
useOne = True
|
||||||
|
else:
|
||||||
|
useOne = VO.useOne
|
||||||
|
useOneClose = VO.useOneClose
|
||||||
|
elif lev < 6 and lev_ < 6:
|
||||||
|
useOne = hasOne
|
||||||
|
useOneClose = hasOneClose
|
||||||
|
elif lev > 5 and lev_ > 5:
|
||||||
|
useOne = True
|
||||||
|
useOneClose = hasOneClose
|
||||||
|
elif lev < 6 and lev_ > 5:
|
||||||
|
useOne = VO.useOne
|
||||||
|
useOneClose = VO.useOneClose
|
||||||
|
elif lev > 5 and lev_ < 6:
|
||||||
|
useOne = True
|
||||||
|
useOneClose = hasOneClose
|
||||||
|
else:
|
||||||
|
assert False
|
||||||
|
#print useOne, hasOne, ';', useOneClose, hasOneClose
|
||||||
|
|
||||||
|
### change headline level and/or format
|
||||||
|
# 2-style unchanged, only adjust level of underline
|
||||||
|
if not useOne and not hasOne:
|
||||||
|
if not levDelta: continue
|
||||||
|
Body[bln] = LEVELS_ADS[lev]*len(L2)
|
||||||
|
# 1-style unchanged, adjust level of ='s and add/remove closing ='s
|
||||||
|
elif useOne and hasOne:
|
||||||
|
# no format change, there are closing ='s
|
||||||
|
if useOneClose and hasOneClose:
|
||||||
|
if not levDelta: continue
|
||||||
|
Body[bln-1] = '%s%s%s' %('='*lev, theHead, '='*lev)
|
||||||
|
# no format change, there are no closing ='s
|
||||||
|
elif not useOneClose and not hasOneClose:
|
||||||
|
if not levDelta: continue
|
||||||
|
Body[bln-1] = '%s%s' %('='*lev, theHead)
|
||||||
|
# add closing ='s
|
||||||
|
elif useOneClose and not hasOneClose:
|
||||||
|
Body[bln-1] = '%s%s %s' %('='*lev, theHead.rstrip(), '='*lev)
|
||||||
|
# remove closing ='s
|
||||||
|
elif not useOneClose and hasOneClose:
|
||||||
|
Body[bln-1] = '%s%s' %('='*lev, theHead.rstrip())
|
||||||
|
# insert underline, remove ='s
|
||||||
|
elif not useOne and hasOne:
|
||||||
|
L1 = theHead.strip()
|
||||||
|
Body[bln-1] = L1
|
||||||
|
# insert underline
|
||||||
|
Body[bln:bln] = [LEVELS_ADS[lev]*len(L1.decode(ENC,'replace'))]
|
||||||
|
update_bnodes(VO, i+1, 1)
|
||||||
|
b_delta+=1
|
||||||
|
# remove underline, insert ='s
|
||||||
|
elif useOne and not hasOne:
|
||||||
|
if useOneClose:
|
||||||
|
Body[bln-1] = '%s %s %s' %('='*lev, theHead.strip(), '='*lev)
|
||||||
|
else:
|
||||||
|
Body[bln-1] = '%s %s' %('='*lev, theHead.strip())
|
||||||
|
# delete underline
|
||||||
|
Body[bln:bln+1] = []
|
||||||
|
update_bnodes(VO, i+1, -1)
|
||||||
|
b_delta-=1
|
||||||
|
|
||||||
|
### Make sure first headline is preceded by a blank line.
|
||||||
|
blnum1 = bnodes[tlnum1-1]
|
||||||
|
if DO_BLANKS and blnum1 > 1 and Body[blnum1-2].strip():
|
||||||
|
Body[blnum1-1:blnum1-1] = ['']
|
||||||
|
update_bnodes(VO, tlnum1 ,1)
|
||||||
|
b_delta+=1
|
||||||
|
|
||||||
|
### After 'down' : insert blank line if there is none
|
||||||
|
# between the nodes used to be separated by the moved region.
|
||||||
|
if DO_BLANKS and oop=='down' and (0 < blnumCut < Z) and Body[blnumCut-1].strip():
|
||||||
|
Body[blnumCut:blnumCut] = ['']
|
||||||
|
update_bnodes(VO, tlnumCut+1 ,1)
|
||||||
|
b_delta+=1
|
||||||
|
|
||||||
|
assert len(Body) == Z + b_delta
|
||||||
|
|
||||||
|
|
||||||
|
def update_bnodes(VO, tlnum, delta):
|
||||||
|
"""Update VO.bnodes by adding/substracting delta to each bnode
|
||||||
|
starting with bnode at tlnum and to the end.
|
||||||
|
"""
|
||||||
|
bnodes = VO.bnodes
|
||||||
|
for i in xrange(tlnum, len(bnodes)+1):
|
||||||
|
bnodes[i-1] += delta
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,72 @@
|
||||||
|
# voom_mode_cwiki.py
|
||||||
|
# Last Modified: 2011-10-30
|
||||||
|
# VOoM -- Vim two-pane outliner, plugin for Python-enabled Vim version 7.x
|
||||||
|
# Website: http://www.vim.org/scripts/script.php?script_id=2657
|
||||||
|
# Author: Vlad Irnov (vlad DOT irnov AT gmail DOT com)
|
||||||
|
# License: This program is free software. It comes without any warranty,
|
||||||
|
# to the extent permitted by applicable law. You can redistribute it
|
||||||
|
# and/or modify it under the terms of the Do What The Fuck You Want To
|
||||||
|
# Public License, Version 2, as published by Sam Hocevar.
|
||||||
|
# See http://sam.zoy.org/wtfpl/COPYING for more details.
|
||||||
|
|
||||||
|
"""
|
||||||
|
VOoM markup mode for cwiki Vim plugin. Contributed by Craig B. Allen.
|
||||||
|
http://www.vim.org/scripts/script.php?script_id=2176
|
||||||
|
See |voom_mode_various|, ../../doc/voom.txt#*voom_mode_various*
|
||||||
|
|
||||||
|
+++ headline level 1
|
||||||
|
some text
|
||||||
|
++++ headline level 2
|
||||||
|
more text
|
||||||
|
+++++ headline level 3
|
||||||
|
++++++ headline level 4
|
||||||
|
etc.
|
||||||
|
|
||||||
|
First + must be at start of line. Whitespace after the last + is optional.
|
||||||
|
"""
|
||||||
|
|
||||||
|
import re
|
||||||
|
headline_match = re.compile(r'^\+\+(\++)').match
|
||||||
|
|
||||||
|
|
||||||
|
def hook_makeOutline(VO, blines):
|
||||||
|
"""Return (tlines, bnodes, levels) for Body lines blines.
|
||||||
|
blines is either Vim buffer object (Body) or list of buffer lines.
|
||||||
|
"""
|
||||||
|
Z = len(blines)
|
||||||
|
tlines, bnodes, levels = [], [], []
|
||||||
|
tlines_add, bnodes_add, levels_add = tlines.append, bnodes.append, levels.append
|
||||||
|
for i in xrange(Z):
|
||||||
|
if not blines[i].startswith('+'):
|
||||||
|
continue
|
||||||
|
bline = blines[i]
|
||||||
|
m = headline_match(bline)
|
||||||
|
if not m:
|
||||||
|
continue
|
||||||
|
lev = len(m.group(1))
|
||||||
|
head = bline[2+lev:].strip()
|
||||||
|
tline = ' %s|%s' %('. '*(lev-1), head)
|
||||||
|
tlines_add(tline)
|
||||||
|
bnodes_add(i+1)
|
||||||
|
levels_add(lev)
|
||||||
|
return (tlines, bnodes, levels)
|
||||||
|
|
||||||
|
|
||||||
|
def hook_newHeadline(VO, level, blnum, tlnum):
|
||||||
|
"""Return (tree_head, bodyLines).
|
||||||
|
tree_head is new headline string in Tree buffer (text after |).
|
||||||
|
bodyLines is list of lines to insert in Body buffer.
|
||||||
|
"""
|
||||||
|
tree_head = 'NewHeadline'
|
||||||
|
bodyLines = ['++%s %s' %('+'*level, tree_head), '']
|
||||||
|
return (tree_head, bodyLines)
|
||||||
|
|
||||||
|
|
||||||
|
def hook_changeLevBodyHead(VO, h, levDelta):
|
||||||
|
"""Increase of decrease level number of Body headline by levDelta."""
|
||||||
|
if levDelta==0: return h
|
||||||
|
m = headline_match(h)
|
||||||
|
level = len(m.group(1))
|
||||||
|
return '++%s%s' %('+'*(level+levDelta), h[m.end(1):])
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
# voom_mode_fmr1.py
|
||||||
|
# Last Modified: 2012-02-25
|
||||||
|
# VOoM -- Vim two-pane outliner, plugin for Python-enabled Vim version 7.x
|
||||||
|
# Website: http://www.vim.org/scripts/script.php?script_id=2657
|
||||||
|
# Author: Vlad Irnov (vlad DOT irnov AT gmail DOT com)
|
||||||
|
# License: This program is free software. It comes without any warranty,
|
||||||
|
# to the extent permitted by applicable law. You can redistribute it
|
||||||
|
# and/or modify it under the terms of the Do What The Fuck You Want To
|
||||||
|
# Public License, Version 2, as published by Sam Hocevar.
|
||||||
|
# See http://sam.zoy.org/wtfpl/COPYING for more details.
|
||||||
|
|
||||||
|
"""
|
||||||
|
This mode changes absolutely nothing, it is identical to the default mode.
|
||||||
|
See |voom_mode_fmr|, ../../doc/voom.txt#*voom_mode_fmr*
|
||||||
|
"""
|
||||||
|
|
||||||
|
# Define this mode as an 'fmr' mode.
|
||||||
|
MODE_FMR = True
|
|
@ -0,0 +1,63 @@
|
||||||
|
# voom_mode_fmr1.py
|
||||||
|
# Last Modified: 2012-02-25
|
||||||
|
# VOoM -- Vim two-pane outliner, plugin for Python-enabled Vim version 7.x
|
||||||
|
# Website: http://www.vim.org/scripts/script.php?script_id=2657
|
||||||
|
# Author: Vlad Irnov (vlad DOT irnov AT gmail DOT com)
|
||||||
|
# License: This program is free software. It comes without any warranty,
|
||||||
|
# to the extent permitted by applicable law. You can redistribute it
|
||||||
|
# and/or modify it under the terms of the Do What The Fuck You Want To
|
||||||
|
# Public License, Version 2, as published by Sam Hocevar.
|
||||||
|
# See http://sam.zoy.org/wtfpl/COPYING for more details.
|
||||||
|
|
||||||
|
"""
|
||||||
|
VOoM markup mode for start fold markers with levels.
|
||||||
|
Similar to the default mode, that is the :Voom command.
|
||||||
|
See |voom_mode_fmr|, ../../doc/voom.txt#*voom_mode_fmr*
|
||||||
|
|
||||||
|
headline level 1 {{{1
|
||||||
|
some text
|
||||||
|
headline level 2 {{{2
|
||||||
|
more text
|
||||||
|
"""
|
||||||
|
|
||||||
|
# Define this mode as an 'fmr' mode.
|
||||||
|
MODE_FMR = True
|
||||||
|
|
||||||
|
# voom.makeoutline() without char stripping
|
||||||
|
def hook_makeOutline(VO, blines):
|
||||||
|
"""Return (tlines, bnodes, levels) for Body lines blines.
|
||||||
|
blines is either Vim buffer object (Body) or list of buffer lines.
|
||||||
|
"""
|
||||||
|
marker = VO.marker
|
||||||
|
marker_re_search = VO.marker_re.search
|
||||||
|
Z = len(blines)
|
||||||
|
tlines, bnodes, levels = [], [], []
|
||||||
|
tlines_add, bnodes_add, levels_add = tlines.append, bnodes.append, levels.append
|
||||||
|
#c = VO.rstrip_chars
|
||||||
|
for i in xrange(Z):
|
||||||
|
if not marker in blines[i]: continue
|
||||||
|
bline = blines[i]
|
||||||
|
m = marker_re_search(bline)
|
||||||
|
if not m: continue
|
||||||
|
lev = int(m.group(1))
|
||||||
|
#head = bline[:m.start()].lstrip().rstrip(c).strip('-=~').strip()
|
||||||
|
head = bline[:m.start()].strip()
|
||||||
|
tline = ' %s%s|%s' %(m.group(2) or ' ', '. '*(lev-1), head)
|
||||||
|
tlines_add(tline)
|
||||||
|
bnodes_add(i+1)
|
||||||
|
levels_add(lev)
|
||||||
|
return (tlines, bnodes, levels)
|
||||||
|
|
||||||
|
|
||||||
|
# same as voom.newHeadline() but without ---
|
||||||
|
def hook_newHeadline(VO, level, blnum, ln):
|
||||||
|
"""Return (tree_head, bodyLines).
|
||||||
|
tree_head is new headline string in Tree buffer (text after |).
|
||||||
|
bodyLines is list of lines to insert in Body buffer.
|
||||||
|
"""
|
||||||
|
tree_head = 'NewHeadline'
|
||||||
|
#bodyLines = ['---%s--- %s%s' %(tree_head, VO.marker, level), '']
|
||||||
|
bodyLines = ['%s %s%s' %(tree_head, VO.marker, level), '']
|
||||||
|
return (tree_head, bodyLines)
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,63 @@
|
||||||
|
# voom_mode_fmr2.py
|
||||||
|
# Last Modified: 2012-02-04
|
||||||
|
# VOoM -- Vim two-pane outliner, plugin for Python-enabled Vim version 7.x
|
||||||
|
# Website: http://www.vim.org/scripts/script.php?script_id=2657
|
||||||
|
# Author: Vlad Irnov (vlad DOT irnov AT gmail DOT com)
|
||||||
|
# License: This program is free software. It comes without any warranty,
|
||||||
|
# to the extent permitted by applicable law. You can redistribute it
|
||||||
|
# and/or modify it under the terms of the Do What The Fuck You Want To
|
||||||
|
# Public License, Version 2, as published by Sam Hocevar.
|
||||||
|
# See http://sam.zoy.org/wtfpl/COPYING for more details.
|
||||||
|
|
||||||
|
"""
|
||||||
|
VOoM markup mode. Headline text is after the start fold marker with level.
|
||||||
|
See |voom_mode_fmr|, ../../doc/voom.txt#*voom_mode_fmr*
|
||||||
|
|
||||||
|
{{{1 headline level 1
|
||||||
|
some text
|
||||||
|
{{{2 headline level 2
|
||||||
|
more text
|
||||||
|
"""
|
||||||
|
|
||||||
|
# Define this mode as an 'fmr' mode.
|
||||||
|
MODE_FMR = True
|
||||||
|
|
||||||
|
|
||||||
|
def hook_makeOutline(VO, blines):
|
||||||
|
"""Return (tlines, bnodes, levels) for Body lines blines.
|
||||||
|
blines is either Vim buffer object (Body) or list of buffer lines.
|
||||||
|
"""
|
||||||
|
marker = VO.marker
|
||||||
|
marker_re_search = VO.marker_re.search
|
||||||
|
Z = len(blines)
|
||||||
|
tlines, bnodes, levels = [], [], []
|
||||||
|
tlines_add, bnodes_add, levels_add = tlines.append, bnodes.append, levels.append
|
||||||
|
#c = VO.rstrip_chars
|
||||||
|
for i in xrange(Z):
|
||||||
|
if not marker in blines[i]: continue
|
||||||
|
bline = blines[i]
|
||||||
|
m = marker_re_search(bline)
|
||||||
|
if not m: continue
|
||||||
|
lev = int(m.group(1))
|
||||||
|
#head = bline[:m.start()].lstrip().rstrip(c).strip('-=~').strip()
|
||||||
|
head = bline[m.end():]
|
||||||
|
# strip special marks o=
|
||||||
|
if head and head[0]=='o': head = head[1:]
|
||||||
|
if head and head[0]=='=': head = head[1:]
|
||||||
|
tline = ' %s%s|%s' %(m.group(2) or ' ', '. '*(lev-1), head.strip())
|
||||||
|
tlines_add(tline)
|
||||||
|
bnodes_add(i+1)
|
||||||
|
levels_add(lev)
|
||||||
|
return (tlines, bnodes, levels)
|
||||||
|
|
||||||
|
|
||||||
|
def hook_newHeadline(VO, level, blnum, ln):
|
||||||
|
"""Return (tree_head, bodyLines).
|
||||||
|
tree_head is new headline string in Tree buffer (text after |).
|
||||||
|
bodyLines is list of lines to insert in Body buffer.
|
||||||
|
"""
|
||||||
|
tree_head = 'NewHeadline'
|
||||||
|
bodyLines = ['%s%s %s' %(VO.marker, level, tree_head), '']
|
||||||
|
return (tree_head, bodyLines)
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,74 @@
|
||||||
|
# voom_mode_hashes.py
|
||||||
|
# Last Modified: 2012-05-06
|
||||||
|
# VOoM -- Vim two-pane outliner, plugin for Python-enabled Vim version 7.x
|
||||||
|
# Website: http://www.vim.org/scripts/script.php?script_id=2657
|
||||||
|
# Author: Vlad Irnov (vlad DOT irnov AT gmail DOT com)
|
||||||
|
# License: This program is free software. It comes without any warranty,
|
||||||
|
# to the extent permitted by applicable law. You can redistribute it
|
||||||
|
# and/or modify it under the terms of the Do What The Fuck You Want To
|
||||||
|
# Public License, Version 2, as published by Sam Hocevar.
|
||||||
|
# See http://sam.zoy.org/wtfpl/COPYING for more details.
|
||||||
|
|
||||||
|
"""
|
||||||
|
VOoM markup mode for headlines marked with #'s (atx-headers, a subset of Markdown format).
|
||||||
|
See |voom_mode_hashes|, ../../doc/voom.txt#*voom_mode_hashes*
|
||||||
|
|
||||||
|
# heading level 1
|
||||||
|
##heading level 2
|
||||||
|
### heading level 3
|
||||||
|
"""
|
||||||
|
|
||||||
|
import re
|
||||||
|
|
||||||
|
# Marker character can be changed to any ASCII character.
|
||||||
|
CH = '#'
|
||||||
|
|
||||||
|
# Use this if whitespace after marker chars is optional.
|
||||||
|
headline_match = re.compile(r'^(%s+)' %re.escape(CH)).match
|
||||||
|
# Use this if a whitespace is required after marker chars (as in org-mode).
|
||||||
|
#headline_match = re.compile(r'^(%s+)\s' %re.escape(CH)).match
|
||||||
|
|
||||||
|
|
||||||
|
def hook_makeOutline(VO, blines):
|
||||||
|
"""Return (tlines, bnodes, levels) for Body lines blines.
|
||||||
|
blines is either Vim buffer object (Body) or list of buffer lines.
|
||||||
|
"""
|
||||||
|
Z = len(blines)
|
||||||
|
tlines, bnodes, levels = [], [], []
|
||||||
|
tlines_add, bnodes_add, levels_add = tlines.append, bnodes.append, levels.append
|
||||||
|
for i in xrange(Z):
|
||||||
|
if not blines[i].startswith(CH):
|
||||||
|
continue
|
||||||
|
bline = blines[i]
|
||||||
|
m = headline_match(bline)
|
||||||
|
if not m:
|
||||||
|
continue
|
||||||
|
lev = len(m.group(1))
|
||||||
|
head = bline[lev:].strip()
|
||||||
|
# Do this instead if optional closing markers need to be stripped.
|
||||||
|
#head = bline[lev:].strip().rstrip(CH).rstrip()
|
||||||
|
tline = ' %s|%s' %('. '*(lev-1), head)
|
||||||
|
tlines_add(tline)
|
||||||
|
bnodes_add(i+1)
|
||||||
|
levels_add(lev)
|
||||||
|
return (tlines, bnodes, levels)
|
||||||
|
|
||||||
|
|
||||||
|
def hook_newHeadline(VO, level, blnum, tlnum):
|
||||||
|
"""Return (tree_head, bodyLines).
|
||||||
|
tree_head is new headline string in Tree buffer (text after |).
|
||||||
|
bodyLines is list of lines to insert in Body buffer.
|
||||||
|
"""
|
||||||
|
tree_head = 'NewHeadline'
|
||||||
|
bodyLines = ['%s %s' %(CH * level, tree_head), '']
|
||||||
|
return (tree_head, bodyLines)
|
||||||
|
|
||||||
|
|
||||||
|
def hook_changeLevBodyHead(VO, h, levDelta):
|
||||||
|
"""Increase of decrease level number of Body headline by levDelta."""
|
||||||
|
if levDelta==0: return h
|
||||||
|
m = headline_match(h)
|
||||||
|
level = len(m.group(1))
|
||||||
|
return '%s%s' %(CH * (level+levDelta), h[m.end(1):])
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,73 @@
|
||||||
|
# voom_mode_html.py
|
||||||
|
# Last Modified: 2011-05-01
|
||||||
|
# VOoM -- Vim two-pane outliner, plugin for Python-enabled Vim version 7.x
|
||||||
|
# Website: http://www.vim.org/scripts/script.php?script_id=2657
|
||||||
|
# Author: Vlad Irnov (vlad DOT irnov AT gmail DOT com)
|
||||||
|
# License: This program is free software. It comes without any warranty,
|
||||||
|
# to the extent permitted by applicable law. You can redistribute it
|
||||||
|
# and/or modify it under the terms of the Do What The Fuck You Want To
|
||||||
|
# Public License, Version 2, as published by Sam Hocevar.
|
||||||
|
# See http://sam.zoy.org/wtfpl/COPYING for more details.
|
||||||
|
|
||||||
|
"""
|
||||||
|
VOoM markup mode for HTML headings.
|
||||||
|
See |voom_mode_html|, ../../doc/voom.txt#*voom_mode_html*
|
||||||
|
|
||||||
|
<h1>headline level 1</h1>
|
||||||
|
some text
|
||||||
|
<h2> headline level 2 </h2>
|
||||||
|
more text
|
||||||
|
<H3 ALIGN="CENTER"> headline level 3 </H3>
|
||||||
|
< h4 > headline level 4 </H4 >
|
||||||
|
some text <h4> <font color=red> headline 5 </font> </H4> </td></div>
|
||||||
|
etc.
|
||||||
|
"""
|
||||||
|
|
||||||
|
import re
|
||||||
|
headline_search = re.compile(r'<\s*h(\d+).*?>(.*?)</h(\1)\s*>', re.IGNORECASE).search
|
||||||
|
html_tag_sub = re.compile('<.*?>').sub
|
||||||
|
|
||||||
|
|
||||||
|
def hook_makeOutline(VO, blines):
|
||||||
|
"""Return (tlines, bnodes, levels) for Body lines blines.
|
||||||
|
blines is either Vim buffer object (Body) or list of buffer lines.
|
||||||
|
"""
|
||||||
|
Z = len(blines)
|
||||||
|
tlines, bnodes, levels = [], [], []
|
||||||
|
tlines_add, bnodes_add, levels_add = tlines.append, bnodes.append, levels.append
|
||||||
|
for i in xrange(Z):
|
||||||
|
bline = blines[i]
|
||||||
|
if not ('</h' in bline or '</H' in bline):
|
||||||
|
continue
|
||||||
|
m = headline_search(bline)
|
||||||
|
if not m:
|
||||||
|
continue
|
||||||
|
lev = int(m.group(1))
|
||||||
|
head = m.group(2)
|
||||||
|
# delete all html tags
|
||||||
|
head = html_tag_sub('',head)
|
||||||
|
tline = ' %s|%s' %('. '*(lev-1), head.strip())
|
||||||
|
tlines_add(tline)
|
||||||
|
bnodes_add(i+1)
|
||||||
|
levels_add(lev)
|
||||||
|
return (tlines, bnodes, levels)
|
||||||
|
|
||||||
|
|
||||||
|
def hook_newHeadline(VO, level, blnum, tlnum):
|
||||||
|
"""Return (tree_head, bodyLines).
|
||||||
|
tree_head is new headline string in Tree buffer (text after |).
|
||||||
|
bodyLines is list of lines to insert in Body buffer.
|
||||||
|
"""
|
||||||
|
tree_head = 'NewHeadline'
|
||||||
|
bodyLines = ['<h%s>%s</h%s>' %(level, tree_head, level), '']
|
||||||
|
return (tree_head, bodyLines)
|
||||||
|
|
||||||
|
|
||||||
|
def hook_changeLevBodyHead(VO, h, levDelta):
|
||||||
|
"""Increase of decrease level number of Body headline by levDelta."""
|
||||||
|
if levDelta==0: return h
|
||||||
|
m = headline_search(h)
|
||||||
|
level = int(m.group(1))
|
||||||
|
lev = level+levDelta
|
||||||
|
return '%s%s%s%s%s' %(h[:m.start(1)], lev, h[m.end(1):m.start(3)], lev, h[m.end(3):])
|
||||||
|
|
|
@ -0,0 +1,318 @@
|
||||||
|
# voom_mode_markdown.py
|
||||||
|
# Last Modified: 2012-04-02
|
||||||
|
# VOoM -- Vim two-pane outliner, plugin for Python-enabled Vim version 7.x
|
||||||
|
# Website: http://www.vim.org/scripts/script.php?script_id=2657
|
||||||
|
# Author: Vlad Irnov (vlad DOT irnov AT gmail DOT com)
|
||||||
|
# License: This program is free software. It comes without any warranty,
|
||||||
|
# to the extent permitted by applicable law. You can redistribute it
|
||||||
|
# and/or modify it under the terms of the Do What The Fuck You Want To
|
||||||
|
# Public License, Version 2, as published by Sam Hocevar.
|
||||||
|
# See http://sam.zoy.org/wtfpl/COPYING for more details.
|
||||||
|
|
||||||
|
"""
|
||||||
|
VOoM markup mode for Markdown headers.
|
||||||
|
See |voom_mode_markdown|, ../../doc/voom.txt#*voom_mode_markdown*
|
||||||
|
"""
|
||||||
|
|
||||||
|
### NOTES
|
||||||
|
# When outline operation changes level, it has to deal with two ambiguities:
|
||||||
|
# a) Level 1 and 2 headline can use underline-style or hashes-style.
|
||||||
|
# b) Hashes-style can have or not have closing hashes.
|
||||||
|
# To determine current preferences: check first headline at level <3 and check
|
||||||
|
# first headline with hashes. This must be done in hook_makeOutline().
|
||||||
|
# (Save in VO, similar to reST mode.) Cannot be done during outline operation,
|
||||||
|
# that is in hook_doBodyAfterOop().
|
||||||
|
# Defaults: use underline, use closing hashes.
|
||||||
|
|
||||||
|
|
||||||
|
levels_ads = {1:'=', 2:'-'}
|
||||||
|
|
||||||
|
|
||||||
|
def hook_makeOutline(VO, blines):
|
||||||
|
"""Return (tlines, bnodes, levels) for Body lines blines.
|
||||||
|
blines is either Vim buffer object (Body) or list of buffer lines.
|
||||||
|
"""
|
||||||
|
Z = len(blines)
|
||||||
|
tlines, bnodes, levels = [], [], []
|
||||||
|
tlines_add, bnodes_add, levels_add = tlines.append, bnodes.append, levels.append
|
||||||
|
|
||||||
|
# trailing whitespace is always removed with rstrip()
|
||||||
|
#
|
||||||
|
# hashes-style, overides underline-style
|
||||||
|
# abcde L2, blines[i-1]
|
||||||
|
# ## head L1, blines[i] -- current line
|
||||||
|
#
|
||||||
|
# underline-style
|
||||||
|
# head L2, blines[i-1] -- title line, not blank, does not start with #
|
||||||
|
# ------ L1, blines[i] -- current line, any number of = or - only
|
||||||
|
|
||||||
|
L1, L2 = '',''
|
||||||
|
|
||||||
|
# Set this once when headline with level 1 or 2 is encountered.
|
||||||
|
# 0 or 1 -- False, use underline-style (default); 2 -- True, use hashes-style
|
||||||
|
useHash = 0
|
||||||
|
# Set this once when headline with hashes is encountered.
|
||||||
|
# 0 or 1 -- True, use closing hashes (default); 2 -- False, do not use closing hashes
|
||||||
|
useCloseHash = 0
|
||||||
|
|
||||||
|
gotHead = False
|
||||||
|
for i in xrange(Z):
|
||||||
|
L2 = L1
|
||||||
|
L1 = blines[i].rstrip()
|
||||||
|
|
||||||
|
if L1.startswith('#'):
|
||||||
|
gotHead = True
|
||||||
|
lev = len(L1) - len(L1.lstrip('#'))
|
||||||
|
bnode = i+1
|
||||||
|
head = L1.strip('#').strip()
|
||||||
|
elif L2 and L1.startswith('=') and L1.lstrip('=')=='':
|
||||||
|
gotHead = True
|
||||||
|
lev = 1
|
||||||
|
head = L2.strip()
|
||||||
|
bnode = i
|
||||||
|
elif L2 and L1.startswith('-') and L1.lstrip('-')=='':
|
||||||
|
gotHead = True
|
||||||
|
lev = 2
|
||||||
|
head = L2.strip()
|
||||||
|
bnode = i
|
||||||
|
else:
|
||||||
|
continue
|
||||||
|
|
||||||
|
if gotHead:
|
||||||
|
gotHead = False
|
||||||
|
if not useHash and lev < 3:
|
||||||
|
if L1.startswith('#'):
|
||||||
|
useHash = 2
|
||||||
|
else:
|
||||||
|
useHash = 1
|
||||||
|
if not useCloseHash and L1.startswith('#'):
|
||||||
|
if L1.endswith('#'):
|
||||||
|
useCloseHash = 1
|
||||||
|
else:
|
||||||
|
useCloseHash = 2
|
||||||
|
L1, L2 = '',''
|
||||||
|
|
||||||
|
tline = ' %s|%s' %('. '*(lev-1), head)
|
||||||
|
tlines_add(tline)
|
||||||
|
bnodes_add(bnode)
|
||||||
|
levels_add(lev)
|
||||||
|
|
||||||
|
# don't clobber these when parsing clipboard during Paste
|
||||||
|
# which is the only time blines is not Body
|
||||||
|
if blines is VO.Body:
|
||||||
|
VO.useHash = useHash == 2
|
||||||
|
VO.useCloseHash = useCloseHash < 2
|
||||||
|
|
||||||
|
return (tlines, bnodes, levels)
|
||||||
|
|
||||||
|
|
||||||
|
def hook_newHeadline(VO, level, blnum, tlnum):
|
||||||
|
"""Return (tree_head, bodyLines).
|
||||||
|
tree_head is new headline string in Tree buffer (text after |).
|
||||||
|
bodyLines is list of lines to insert in Body buffer.
|
||||||
|
"""
|
||||||
|
tree_head = 'NewHeadline'
|
||||||
|
if level < 3 and not VO.useHash:
|
||||||
|
bodyLines = [tree_head, levels_ads[level]*11, '']
|
||||||
|
else:
|
||||||
|
lev = '#'*level
|
||||||
|
if VO.useCloseHash:
|
||||||
|
bodyLines = ['%s %s %s' %(lev, tree_head, lev), '']
|
||||||
|
else:
|
||||||
|
bodyLines = ['%s %s' %(lev, tree_head), '']
|
||||||
|
|
||||||
|
# Add blank line when inserting after non-blank Body line.
|
||||||
|
if VO.Body[blnum-1].strip():
|
||||||
|
bodyLines[0:0] = ['']
|
||||||
|
|
||||||
|
return (tree_head, bodyLines)
|
||||||
|
|
||||||
|
|
||||||
|
#def hook_changeLevBodyHead(VO, h, levDelta):
|
||||||
|
# DO NOT CREATE THIS HOOK
|
||||||
|
|
||||||
|
|
||||||
|
def hook_doBodyAfterOop(VO, oop, levDelta, blnum1, tlnum1, blnum2, tlnum2, blnumCut, tlnumCut):
|
||||||
|
# this is instead of hook_changeLevBodyHead()
|
||||||
|
|
||||||
|
# Based on reST mode function. Insert blank separator lines if missing,
|
||||||
|
# even though they are not important for Markdown headlines.
|
||||||
|
|
||||||
|
#print oop, levDelta, blnum1, tlnum1, blnum2, tlnum2, tlnumCut, blnumCut
|
||||||
|
Body = VO.Body
|
||||||
|
Z = len(Body)
|
||||||
|
bnodes, levels = VO.bnodes, VO.levels
|
||||||
|
ENC = VO.enc
|
||||||
|
|
||||||
|
# blnum1 blnum2 is first and last lnums of Body region pasted, inserted
|
||||||
|
# during up/down, or promoted/demoted.
|
||||||
|
if blnum1:
|
||||||
|
assert blnum1 == bnodes[tlnum1-1]
|
||||||
|
if tlnum2 < len(bnodes):
|
||||||
|
assert blnum2 == bnodes[tlnum2]-1
|
||||||
|
else:
|
||||||
|
assert blnum2 == Z
|
||||||
|
|
||||||
|
# blnumCut is Body lnum after which a region was removed during 'cut',
|
||||||
|
# 'up', 'down'. Need this to check if there is blank line between nodes
|
||||||
|
# used to be separated by the cut/moved region.
|
||||||
|
if blnumCut:
|
||||||
|
if tlnumCut < len(bnodes):
|
||||||
|
assert blnumCut == bnodes[tlnumCut]-1
|
||||||
|
else:
|
||||||
|
assert blnumCut == Z
|
||||||
|
|
||||||
|
# Total number of added lines minus number of deleted lines.
|
||||||
|
b_delta = 0
|
||||||
|
|
||||||
|
### After 'cut' or 'up': insert blank line if there is none
|
||||||
|
# between the nodes used to be separated by the cut/moved region.
|
||||||
|
if (oop=='cut' or oop=='up') and (0 < blnumCut < Z) and Body[blnumCut-1].strip():
|
||||||
|
Body[blnumCut:blnumCut] = ['']
|
||||||
|
update_bnodes(VO, tlnumCut+1 ,1)
|
||||||
|
b_delta+=1
|
||||||
|
|
||||||
|
if oop=='cut':
|
||||||
|
return
|
||||||
|
|
||||||
|
### Make sure there is blank line after the last node in the region:
|
||||||
|
# insert blank line after blnum2 if blnum2 is not blank, that is insert
|
||||||
|
# blank line before bnode at tlnum2+1.
|
||||||
|
if blnum2 < Z and Body[blnum2-1].strip():
|
||||||
|
Body[blnum2:blnum2] = ['']
|
||||||
|
update_bnodes(VO, tlnum2+1 ,1)
|
||||||
|
b_delta+=1
|
||||||
|
|
||||||
|
### Change levels and/or formats of headlines in the affected region.
|
||||||
|
# Always do this after Paste, even if level is unchanged -- format can
|
||||||
|
# be different when pasting from other outlines.
|
||||||
|
# Examine each headline, from bottom to top, and change level and/or format.
|
||||||
|
# To change from hashes to underline-style:
|
||||||
|
# strip hashes, strip whitespace;
|
||||||
|
# insert underline.
|
||||||
|
# To change from underline to hashes-style:
|
||||||
|
# delete underline;
|
||||||
|
# insert hashes.
|
||||||
|
# Update bnodes after inserting or deleting a line.
|
||||||
|
|
||||||
|
# hash-style underline-style
|
||||||
|
#
|
||||||
|
# L0 L0 Body[bln-2]
|
||||||
|
# ## head L1 head L1 <--bnode Body[bln-1]
|
||||||
|
# L2 ---- L2 Body[bln]
|
||||||
|
# L3 L3 Body[bln+1]
|
||||||
|
|
||||||
|
if levDelta or oop=='paste':
|
||||||
|
for i in xrange(tlnum2, tlnum1-1, -1):
|
||||||
|
# required level (VO.levels has been updated)
|
||||||
|
lev = levels[i-1]
|
||||||
|
# current level from which to change to lev
|
||||||
|
lev_ = lev - levDelta
|
||||||
|
|
||||||
|
# Body headline (bnode) and next line
|
||||||
|
bln = bnodes[i-1]
|
||||||
|
L1 = Body[bln-1].rstrip()
|
||||||
|
if bln+1 < len(Body):
|
||||||
|
L2 = Body[bln].rstrip()
|
||||||
|
else:
|
||||||
|
L2 = ''
|
||||||
|
|
||||||
|
# get current headline format
|
||||||
|
hasHash, hasCloseHash = False, VO.useCloseHash
|
||||||
|
if L1.startswith('#'):
|
||||||
|
hasHash = True
|
||||||
|
if L1.endswith('#'):
|
||||||
|
hasCloseHash = True
|
||||||
|
else:
|
||||||
|
hasCloseHash = False
|
||||||
|
|
||||||
|
# get desired headline format
|
||||||
|
if oop=='paste':
|
||||||
|
if lev > 2:
|
||||||
|
useHash = True
|
||||||
|
else:
|
||||||
|
useHash = VO.useHash
|
||||||
|
useCloseHash = VO.useCloseHash
|
||||||
|
elif lev < 3 and lev_ < 3:
|
||||||
|
useHash = hasHash
|
||||||
|
useCloseHash = hasCloseHash
|
||||||
|
elif lev > 2 and lev_ > 2:
|
||||||
|
useHash = True
|
||||||
|
useCloseHash = hasCloseHash
|
||||||
|
elif lev < 3 and lev_ > 2:
|
||||||
|
useHash = VO.useHash
|
||||||
|
useCloseHash = VO.useCloseHash
|
||||||
|
elif lev > 2 and lev_ < 3:
|
||||||
|
useHash = True
|
||||||
|
useCloseHash = hasCloseHash
|
||||||
|
else:
|
||||||
|
assert False
|
||||||
|
#print useHash, hasHash, ';', useCloseHash, hasCloseHash
|
||||||
|
|
||||||
|
# change headline level and/or format
|
||||||
|
|
||||||
|
# underline-style unchanged, only adjust level of underline
|
||||||
|
if not useHash and not hasHash:
|
||||||
|
if not levDelta: continue
|
||||||
|
Body[bln] = levels_ads[lev]*len(L2)
|
||||||
|
# hashes-style unchanged, adjust level of hashes and add/remove closing hashes
|
||||||
|
elif useHash and hasHash:
|
||||||
|
# no format change, there are closing hashes
|
||||||
|
if useCloseHash and hasCloseHash:
|
||||||
|
if not levDelta: continue
|
||||||
|
Body[bln-1] = '%s%s%s' %('#'*lev, L1.strip('#'), '#'*lev)
|
||||||
|
# no format change, there are no closing hashes
|
||||||
|
elif not useCloseHash and not hasCloseHash:
|
||||||
|
if not levDelta: continue
|
||||||
|
Body[bln-1] = '%s%s' %('#'*lev, L1.lstrip('#'))
|
||||||
|
# add closing hashes
|
||||||
|
elif useCloseHash and not hasCloseHash:
|
||||||
|
Body[bln-1] = '%s%s %s' %('#'*lev, L1.strip('#').rstrip(), '#'*lev)
|
||||||
|
# remove closing hashes
|
||||||
|
elif not useCloseHash and hasCloseHash:
|
||||||
|
Body[bln-1] = '%s%s' %('#'*lev, L1.strip('#').rstrip())
|
||||||
|
# insert underline, remove hashes
|
||||||
|
elif not useHash and hasHash:
|
||||||
|
L1 = L1.strip('#').strip()
|
||||||
|
Body[bln-1] = L1
|
||||||
|
# insert underline
|
||||||
|
Body[bln:bln] = [levels_ads[lev]*len(L1.decode(ENC,'replace'))]
|
||||||
|
update_bnodes(VO, i+1, 1)
|
||||||
|
b_delta+=1
|
||||||
|
# remove underline, insert hashes
|
||||||
|
elif useHash and not hasHash:
|
||||||
|
if useCloseHash:
|
||||||
|
Body[bln-1] = '%s %s %s' %('#'*lev, L1.strip('#').strip(), '#'*lev)
|
||||||
|
else:
|
||||||
|
Body[bln-1] = '%s %s' %('#'*lev, L1.strip('#').strip())
|
||||||
|
# delete underline
|
||||||
|
Body[bln:bln+1] = []
|
||||||
|
update_bnodes(VO, i+1, -1)
|
||||||
|
b_delta-=1
|
||||||
|
|
||||||
|
### Make sure first headline is preceded by a blank line.
|
||||||
|
blnum1 = bnodes[tlnum1-1]
|
||||||
|
if blnum1 > 1 and Body[blnum1-2].strip():
|
||||||
|
Body[blnum1-1:blnum1-1] = ['']
|
||||||
|
update_bnodes(VO, tlnum1 ,1)
|
||||||
|
b_delta+=1
|
||||||
|
|
||||||
|
### After 'down' : insert blank line if there is none
|
||||||
|
# between the nodes used to be separated by the moved region.
|
||||||
|
if oop=='down' and (0 < blnumCut < Z) and Body[blnumCut-1].strip():
|
||||||
|
Body[blnumCut:blnumCut] = ['']
|
||||||
|
update_bnodes(VO, tlnumCut+1 ,1)
|
||||||
|
b_delta+=1
|
||||||
|
|
||||||
|
assert len(Body) == Z + b_delta
|
||||||
|
|
||||||
|
|
||||||
|
def update_bnodes(VO, tlnum, delta):
|
||||||
|
"""Update VO.bnodes by adding/substracting delta to each bnode
|
||||||
|
starting with bnode at tlnum and to the end.
|
||||||
|
"""
|
||||||
|
bnodes = VO.bnodes
|
||||||
|
for i in xrange(tlnum, len(bnodes)+1):
|
||||||
|
bnodes[i-1] += delta
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,61 @@
|
||||||
|
# voom_mode_org.py
|
||||||
|
# Last Modified: 2011-10-28
|
||||||
|
# VOoM -- Vim two-pane outliner, plugin for Python-enabled Vim version 7.x
|
||||||
|
# Website: http://www.vim.org/scripts/script.php?script_id=2657
|
||||||
|
# Author: Vlad Irnov (vlad DOT irnov AT gmail DOT com)
|
||||||
|
# License: This program is free software. It comes without any warranty,
|
||||||
|
# to the extent permitted by applicable law. You can redistribute it
|
||||||
|
# and/or modify it under the terms of the Do What The Fuck You Want To
|
||||||
|
# Public License, Version 2, as published by Sam Hocevar.
|
||||||
|
# See http://sam.zoy.org/wtfpl/COPYING for more details.
|
||||||
|
|
||||||
|
"""
|
||||||
|
VOoM markup mode for Emacs Org-mode headline format.
|
||||||
|
See |voom_mode_org|, ../../doc/voom.txt#*voom_mode_org*
|
||||||
|
"""
|
||||||
|
|
||||||
|
import re
|
||||||
|
headline_match = re.compile(r'^(\*+)\s').match
|
||||||
|
|
||||||
|
|
||||||
|
def hook_makeOutline(VO, blines):
|
||||||
|
"""Return (tlines, bnodes, levels) for Body lines blines.
|
||||||
|
blines is either Vim buffer object (Body) or list of buffer lines.
|
||||||
|
"""
|
||||||
|
Z = len(blines)
|
||||||
|
tlines, bnodes, levels = [], [], []
|
||||||
|
tlines_add, bnodes_add, levels_add = tlines.append, bnodes.append, levels.append
|
||||||
|
for i in xrange(Z):
|
||||||
|
if not blines[i].startswith('*'):
|
||||||
|
continue
|
||||||
|
bline = blines[i]
|
||||||
|
m = headline_match(bline)
|
||||||
|
if not m:
|
||||||
|
continue
|
||||||
|
lev = len(m.group(1))
|
||||||
|
head = bline[lev:].strip()
|
||||||
|
tline = ' %s|%s' %('. '*(lev-1), head)
|
||||||
|
tlines_add(tline)
|
||||||
|
bnodes_add(i+1)
|
||||||
|
levels_add(lev)
|
||||||
|
return (tlines, bnodes, levels)
|
||||||
|
|
||||||
|
|
||||||
|
def hook_newHeadline(VO, level, blnum, tlnum):
|
||||||
|
"""Return (tree_head, bodyLines).
|
||||||
|
tree_head is new headline string in Tree buffer (text after |).
|
||||||
|
bodyLines is list of lines to insert in Body buffer.
|
||||||
|
"""
|
||||||
|
tree_head = 'NewHeadline'
|
||||||
|
bodyLines = ['%s %s' %('*'*level, tree_head), '']
|
||||||
|
return (tree_head, bodyLines)
|
||||||
|
|
||||||
|
|
||||||
|
def hook_changeLevBodyHead(VO, h, levDelta):
|
||||||
|
"""Increase of decrease level number of Body headline by levDelta."""
|
||||||
|
if levDelta==0: return h
|
||||||
|
m = headline_match(h)
|
||||||
|
level = len(m.group(1))
|
||||||
|
return '%s%s' %('*'*(level+levDelta), h[m.end(1):])
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,214 @@
|
||||||
|
# voom_mode_python.py
|
||||||
|
# Last Modified: 2011-05-01
|
||||||
|
# VOoM -- Vim two-pane outliner, plugin for Python-enabled Vim version 7.x
|
||||||
|
# Website: http://www.vim.org/scripts/script.php?script_id=2657
|
||||||
|
# Author: Vlad Irnov (vlad DOT irnov AT gmail DOT com)
|
||||||
|
# License: This program is free software. It comes without any warranty,
|
||||||
|
# to the extent permitted by applicable law. You can redistribute it
|
||||||
|
# and/or modify it under the terms of the Do What The Fuck You Want To
|
||||||
|
# Public License, Version 2, as published by Sam Hocevar.
|
||||||
|
# See http://sam.zoy.org/wtfpl/COPYING for more details.
|
||||||
|
|
||||||
|
"""
|
||||||
|
VOoM markup mode for Python code.
|
||||||
|
See |voom_mode_python|, ../../doc/voom.txt#*voom_mode_python*
|
||||||
|
"""
|
||||||
|
|
||||||
|
import token, tokenize
|
||||||
|
import traceback
|
||||||
|
import vim
|
||||||
|
|
||||||
|
|
||||||
|
def hook_makeOutline(VO, blines):
|
||||||
|
"""Return (tlines, bnodes, levels) for Body lines blines.
|
||||||
|
blines is either Vim buffer object (Body) or list of buffer lines.
|
||||||
|
"""
|
||||||
|
Z = len(blines)
|
||||||
|
tlines, bnodes, levels = [], [], []
|
||||||
|
tlines_add, bnodes_add, levels_add = tlines.append, bnodes.append, levels.append
|
||||||
|
|
||||||
|
#ignore_lnums, func_lnums = get_lnums_from_tokenize(blines)
|
||||||
|
try:
|
||||||
|
ignore_lnums, func_lnums = get_lnums_from_tokenize(blines)
|
||||||
|
except (IndentationError, tokenize.TokenError):
|
||||||
|
vim.command("call Voom_ErrorMsg('VOoM: EXCEPTION WHILE PARSING PYTHON OUTLINE')")
|
||||||
|
# DO NOT print to sys.stderr -- triggers Vim error when default stderr (no PyLog)
|
||||||
|
#traceback.print_exc() --this goes to sys.stderr
|
||||||
|
#print traceback.format_exc() --ok but no highlighting
|
||||||
|
lines = traceback.format_exc().replace("'","''").split('\n')
|
||||||
|
for l in lines:
|
||||||
|
vim.command("call Voom_ErrorMsg('%s')" %l)
|
||||||
|
return (['= |!!!ERROR: OUTLINE IS INVALID'], [1], [1])
|
||||||
|
|
||||||
|
gotHead = False # True if current line is a headline
|
||||||
|
indents = [0,] # indents of previous levels
|
||||||
|
funcLevels = [] # levels of previous def or class
|
||||||
|
indent_error = '' # inconsistent indent
|
||||||
|
for i in xrange(Z):
|
||||||
|
if i+1 in ignore_lnums: continue
|
||||||
|
bline = blines[i]
|
||||||
|
bline_s = bline.strip()
|
||||||
|
if not bline_s: continue
|
||||||
|
bline_ls = bline.lstrip()
|
||||||
|
|
||||||
|
# compute indent and level
|
||||||
|
indent = len(bline) - len(bline_ls)
|
||||||
|
if indent > indents[-1]:
|
||||||
|
indents.append(indent)
|
||||||
|
elif indent < indents[-1]:
|
||||||
|
while indents and (indents[-1] > indent):
|
||||||
|
indents.pop()
|
||||||
|
if indents[-1]==indent:
|
||||||
|
indent_error = ''
|
||||||
|
else:
|
||||||
|
indent_error = '!!! '
|
||||||
|
lev = len(indents)
|
||||||
|
|
||||||
|
# first line after the end of a class or def block
|
||||||
|
if funcLevels and lev <= funcLevels[-1]:
|
||||||
|
gotHead = True
|
||||||
|
while funcLevels and funcLevels[-1] >= lev:
|
||||||
|
funcLevels.pop()
|
||||||
|
# first line of a class or def block
|
||||||
|
if i+1 in func_lnums:
|
||||||
|
gotHead = True
|
||||||
|
if not funcLevels or (lev > funcLevels[-1]):
|
||||||
|
funcLevels.append(lev)
|
||||||
|
# special comment line (unconditional headline) or line with @decorator
|
||||||
|
elif bline_s.startswith('@') or bline_s.startswith('### ') or bline_s.startswith('#---'):
|
||||||
|
gotHead = True
|
||||||
|
|
||||||
|
if gotHead:
|
||||||
|
gotHead = False
|
||||||
|
tline = ' %s|%s%s' %('. '*(lev-1), indent_error, bline_s)
|
||||||
|
tlines_add(tline)
|
||||||
|
bnodes_add(i+1)
|
||||||
|
levels_add(lev)
|
||||||
|
|
||||||
|
return (tlines, bnodes, levels)
|
||||||
|
|
||||||
|
|
||||||
|
class BLines:
|
||||||
|
"""Wrapper around Vim buffer object or list of Body lines to provide
|
||||||
|
readline() method for use with tokenize.generate_tokens().
|
||||||
|
"""
|
||||||
|
def __init__(self, blines):
|
||||||
|
self.blines = blines
|
||||||
|
self.size = len(blines)
|
||||||
|
self.idx = -1
|
||||||
|
|
||||||
|
def readline(self):
|
||||||
|
self.idx += 1
|
||||||
|
if self.idx == self.size:
|
||||||
|
return ''
|
||||||
|
return "%s\n" %self.blines[self.idx]
|
||||||
|
|
||||||
|
|
||||||
|
### toktypes of tokens
|
||||||
|
STRING = token.STRING
|
||||||
|
NAME = token.NAME
|
||||||
|
NEWLINE = token.NEWLINE
|
||||||
|
|
||||||
|
def get_lnums_from_tokenize(blines):
|
||||||
|
"""Return dicts. Keys are Body lnums.
|
||||||
|
The main purpose is to get list of lnums to ignore: multi-line strings and
|
||||||
|
expressions.
|
||||||
|
"""
|
||||||
|
# lnums to ignore: multi-line strings and expressions other than the first line
|
||||||
|
ignore_lnums = {}
|
||||||
|
# lnums of 'class' and 'def' tokens
|
||||||
|
func_lnums = {}
|
||||||
|
|
||||||
|
inName = False
|
||||||
|
|
||||||
|
for tok in tokenize.generate_tokens(BLines(blines).readline):
|
||||||
|
toktype, toktext, (srow, scol), (erow, ecol), line = tok
|
||||||
|
#print token.tok_name[toktype], tok
|
||||||
|
if toktype == NAME:
|
||||||
|
if not inName:
|
||||||
|
inName = True
|
||||||
|
srow_name = srow
|
||||||
|
if toktext in ('def','class'):
|
||||||
|
func_lnums[srow] = toktext
|
||||||
|
elif toktype == NEWLINE and inName:
|
||||||
|
inName = False
|
||||||
|
if srow_name != erow:
|
||||||
|
for i in xrange(srow_name+1, erow+1):
|
||||||
|
ignore_lnums[i] = 0
|
||||||
|
elif toktype == STRING:
|
||||||
|
if srow != erow:
|
||||||
|
for i in xrange(srow+1, erow+1):
|
||||||
|
ignore_lnums[i] = 0
|
||||||
|
|
||||||
|
return (ignore_lnums, func_lnums)
|
||||||
|
|
||||||
|
|
||||||
|
def get_body_indent(body):
|
||||||
|
"""Return string used for indenting Body lines."""
|
||||||
|
et = int(vim.eval("getbufvar(%s,'&et')" %body))
|
||||||
|
if et:
|
||||||
|
ts = int(vim.eval("getbufvar(%s,'&ts')" %body))
|
||||||
|
return ' '*ts
|
||||||
|
else:
|
||||||
|
return '\t'
|
||||||
|
|
||||||
|
|
||||||
|
def hook_newHeadline(VO, level, blnum, tlnum):
|
||||||
|
"""Return (tree_head, bodyLines).
|
||||||
|
tree_head is new headline string in Tree buffer (text after |).
|
||||||
|
bodyLines is list of lines to insert in Body buffer.
|
||||||
|
"""
|
||||||
|
tree_head = '### NewHeadline'
|
||||||
|
indent = get_body_indent(VO.body)
|
||||||
|
body_head = '%s%s' %(indent*(level-1), tree_head)
|
||||||
|
return (tree_head, [body_head])
|
||||||
|
|
||||||
|
|
||||||
|
#def hook_changeLevBodyHead(VO, h, levDelta):
|
||||||
|
#"""Increase of decrease level number of Body headline by levDelta."""
|
||||||
|
#if levDelta==0: return h
|
||||||
|
|
||||||
|
|
||||||
|
def hook_doBodyAfterOop(VO, oop, levDelta, blnum1, tlnum1, blnum2, tlnum2, blnumCut, tlnumCut):
|
||||||
|
# this is instead of hook_changeLevBodyHead()
|
||||||
|
#print oop, levDelta, blnum1, tlnum1, blnum2, tlnum2, tlnumCut, blnumCut
|
||||||
|
Body = VO.Body
|
||||||
|
Z = len(Body)
|
||||||
|
|
||||||
|
ind = get_body_indent(VO.body)
|
||||||
|
# levDelta is wrong when pasting because hook_makeOutline() looks at relative indent
|
||||||
|
# determine level of pasted region from indent of its first line
|
||||||
|
if oop=='paste':
|
||||||
|
bline1 = Body[blnum1-1]
|
||||||
|
lev = (len(bline1) - len(bline1.lstrip())) / len(ind) + 1
|
||||||
|
levDelta = VO.levels[tlnum1-1] - lev
|
||||||
|
|
||||||
|
if not levDelta: return
|
||||||
|
|
||||||
|
indent = abs(levDelta) * ind
|
||||||
|
#--- copied from voom_mode_thevimoutliner.py -----------------------------
|
||||||
|
if blnum1:
|
||||||
|
assert blnum1 == VO.bnodes[tlnum1-1]
|
||||||
|
if tlnum2 < len(VO.bnodes):
|
||||||
|
assert blnum2 == VO.bnodes[tlnum2]-1
|
||||||
|
else:
|
||||||
|
assert blnum2 == Z
|
||||||
|
|
||||||
|
# dedent (if possible) or indent every non-blank line in Body region blnum1,blnum2
|
||||||
|
blines = []
|
||||||
|
for i in xrange(blnum1-1,blnum2):
|
||||||
|
line = Body[i]
|
||||||
|
if not line.strip():
|
||||||
|
blines.append(line)
|
||||||
|
continue
|
||||||
|
if levDelta > 0:
|
||||||
|
line = '%s%s' %(indent,line)
|
||||||
|
elif levDelta < 0 and line.startswith(indent):
|
||||||
|
line = line[len(indent):]
|
||||||
|
blines.append(line)
|
||||||
|
|
||||||
|
# replace Body region
|
||||||
|
Body[blnum1-1:blnum2] = blines
|
||||||
|
assert len(Body)==Z
|
||||||
|
|
||||||
|
|
369
vim_plugins_src/VOoM-4.3/VOoM-4.3/plugin/voom/voom_mode_rest.py
Normal file
369
vim_plugins_src/VOoM-4.3/VOoM-4.3/plugin/voom/voom_mode_rest.py
Normal file
|
@ -0,0 +1,369 @@
|
||||||
|
# voom_mode_rest.py
|
||||||
|
# Last Modified: 2012-04-02
|
||||||
|
# VOoM -- Vim two-pane outliner, plugin for Python-enabled Vim version 7.x
|
||||||
|
# Website: http://www.vim.org/scripts/script.php?script_id=2657
|
||||||
|
# Author: Vlad Irnov (vlad DOT irnov AT gmail DOT com)
|
||||||
|
# License: This program is free software. It comes without any warranty,
|
||||||
|
# to the extent permitted by applicable law. You can redistribute it
|
||||||
|
# and/or modify it under the terms of the Do What The Fuck You Want To
|
||||||
|
# Public License, Version 2, as published by Sam Hocevar.
|
||||||
|
# See http://sam.zoy.org/wtfpl/COPYING for more details.
|
||||||
|
|
||||||
|
"""
|
||||||
|
VOoM markup mode for reStructuredText.
|
||||||
|
See |voom_mode_rest|, ../../doc/voom.txt#*voom_mode_rest*
|
||||||
|
|
||||||
|
http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html#sections
|
||||||
|
The following are all valid section title adornment characters:
|
||||||
|
! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~
|
||||||
|
|
||||||
|
Some characters are more suitable than others. The following are recommended:
|
||||||
|
= - ` : . ' " ~ ^ _ * + #
|
||||||
|
|
||||||
|
http://docs.python.org/documenting/rest.html#sections
|
||||||
|
Python recommended styles: ## ** = - ^ "
|
||||||
|
"""
|
||||||
|
|
||||||
|
# All valid section title adornment characters.
|
||||||
|
AD_CHARS = """ ! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~ """
|
||||||
|
AD_CHARS = AD_CHARS.split()
|
||||||
|
|
||||||
|
# List of adornment styles, in order of preference.
|
||||||
|
# Adornment style (ad) is a char or double char: '=', '==', '-', '--', '*', etc.
|
||||||
|
# Char is adornment char, double if there is overline.
|
||||||
|
AD_STYLES = """ == -- = - * " ' ` ~ : ^ + # . _ """
|
||||||
|
AD_STYLES = AD_STYLES.split()
|
||||||
|
|
||||||
|
# add all other possible styles to AD_STYLES
|
||||||
|
d = {}.fromkeys(AD_STYLES)
|
||||||
|
for c in AD_CHARS:
|
||||||
|
if not c*2 in d:
|
||||||
|
AD_STYLES.append(c*2)
|
||||||
|
if not c in d:
|
||||||
|
AD_STYLES.append(c)
|
||||||
|
assert len(AD_STYLES)==64
|
||||||
|
|
||||||
|
# convert AD_CHARS to dict for faster lookups
|
||||||
|
AD_CHARS = {}.fromkeys(AD_CHARS)
|
||||||
|
|
||||||
|
|
||||||
|
def hook_makeOutline(VO, blines):
|
||||||
|
"""Return (tlines, bnodes, levels) for Body lines blines.
|
||||||
|
blines is either Vim buffer object (Body) or list of buffer lines.
|
||||||
|
"""
|
||||||
|
Z = len(blines)
|
||||||
|
tlines, bnodes, levels = [], [], []
|
||||||
|
tlines_add, bnodes_add, levels_add = tlines.append, bnodes.append, levels.append
|
||||||
|
ENC = VO.enc
|
||||||
|
|
||||||
|
# {adornment style: level, ...}
|
||||||
|
# Level indicates when the first instance of this style was found.
|
||||||
|
ads_levels = {}
|
||||||
|
|
||||||
|
# diagram of Body lines when a headline is detected
|
||||||
|
# trailing whitespace always removed with rstrip()
|
||||||
|
# a b c
|
||||||
|
# ------ L3, blines[i-2] -- an overline or blank line
|
||||||
|
# head L2, blines[i-1] -- title line, not blank, <= than underline, can be inset only if overline
|
||||||
|
# ------ L1, blines[i] -- current line, always underline
|
||||||
|
# x y z
|
||||||
|
L1, L2, L3 = '','',''
|
||||||
|
|
||||||
|
gotHead = False
|
||||||
|
for i in xrange(Z):
|
||||||
|
L2, L3 = L1, L2
|
||||||
|
L1 = blines[i].rstrip()
|
||||||
|
# current line must be underline and title line cannot be blank
|
||||||
|
if not (L1 and L2 and (L1[0] in AD_CHARS) and L1.lstrip(L1[0])==''):
|
||||||
|
continue
|
||||||
|
# underline must be as long as headline text
|
||||||
|
if len(L1) < len(L2.decode(ENC,'replace')):
|
||||||
|
continue
|
||||||
|
# there is no overline; L3 must be blank line; L2 must be not inset
|
||||||
|
if not L3 and len(L2)==len(L2.lstrip()):
|
||||||
|
#if len(L1) < len(L2.decode(ENC,'replace')): continue
|
||||||
|
gotHead = True
|
||||||
|
ad = L1[0]
|
||||||
|
head = L2.strip()
|
||||||
|
bnode = i
|
||||||
|
# there is overline -- bnode is lnum of overline!
|
||||||
|
elif L3==L1:
|
||||||
|
#if len(L1) < len(L2.decode(ENC,'replace')): continue
|
||||||
|
gotHead = True
|
||||||
|
ad = L1[0]*2
|
||||||
|
head = L2.strip()
|
||||||
|
bnode = i-1
|
||||||
|
|
||||||
|
if gotHead:
|
||||||
|
if not ad in ads_levels:
|
||||||
|
ads_levels[ad] = len(ads_levels)+1
|
||||||
|
lev = ads_levels[ad]
|
||||||
|
gotHead = False
|
||||||
|
L1, L2, L3 = '','',''
|
||||||
|
|
||||||
|
tline = ' %s|%s' %('. '*(lev-1), head)
|
||||||
|
tlines_add(tline)
|
||||||
|
bnodes_add(bnode)
|
||||||
|
levels_add(lev)
|
||||||
|
|
||||||
|
# save ads_levels for outline operations
|
||||||
|
# don't clobber VO.ads_levels when parsing clipboard during Paste
|
||||||
|
# which is the only time blines is not Body
|
||||||
|
if blines is VO.Body:
|
||||||
|
VO.ads_levels = ads_levels
|
||||||
|
|
||||||
|
return (tlines, bnodes, levels)
|
||||||
|
|
||||||
|
|
||||||
|
def hook_newHeadline(VO, level, blnum, tlnum):
|
||||||
|
"""Return (tree_head, bodyLines).
|
||||||
|
tree_head is new headline string in Tree buffer (text after |).
|
||||||
|
bodyLines is list of lines to insert in Body buffer.
|
||||||
|
"""
|
||||||
|
tree_head = 'NewHeadline'
|
||||||
|
ads_levels = VO.ads_levels
|
||||||
|
levels_ads = dict([[v,k] for k,v in ads_levels.items()])
|
||||||
|
|
||||||
|
if level in levels_ads:
|
||||||
|
ad = levels_ads[level]
|
||||||
|
else:
|
||||||
|
ad = get_new_ad(levels_ads, ads_levels, level)
|
||||||
|
|
||||||
|
if len(ad)==1:
|
||||||
|
bodyLines = [tree_head, ad*11, '']
|
||||||
|
elif len(ad)==2:
|
||||||
|
ad = ad[0]
|
||||||
|
bodyLines = [ad*11, tree_head, ad*11, '']
|
||||||
|
|
||||||
|
# Add blank line when inserting after non-blank Body line.
|
||||||
|
if VO.Body[blnum-1].strip():
|
||||||
|
bodyLines[0:0] = ['']
|
||||||
|
|
||||||
|
return (tree_head, bodyLines)
|
||||||
|
|
||||||
|
|
||||||
|
#def hook_changeLevBodyHead(VO, h, levDelta):
|
||||||
|
# DO NOT CREATE THIS HOOK
|
||||||
|
|
||||||
|
|
||||||
|
def hook_doBodyAfterOop(VO, oop, levDelta, blnum1, tlnum1, blnum2, tlnum2, blnumCut, tlnumCut):
|
||||||
|
# this is instead of hook_changeLevBodyHead()
|
||||||
|
#print oop, levDelta, blnum1, tlnum1, blnum2, tlnum2, tlnumCut, blnumCut
|
||||||
|
Body = VO.Body
|
||||||
|
Z = len(Body)
|
||||||
|
bnodes, levels = VO.bnodes, VO.levels
|
||||||
|
ENC = VO.enc
|
||||||
|
|
||||||
|
# blnum1 blnum2 is first and last lnums of Body region pasted, inserted
|
||||||
|
# during up/down, or promoted/demoted.
|
||||||
|
if blnum1:
|
||||||
|
assert blnum1 == bnodes[tlnum1-1]
|
||||||
|
if tlnum2 < len(bnodes):
|
||||||
|
assert blnum2 == bnodes[tlnum2]-1
|
||||||
|
else:
|
||||||
|
assert blnum2 == Z
|
||||||
|
|
||||||
|
# blnumCut is Body lnum after which a region was removed during 'cut',
|
||||||
|
# 'up', 'down'. We need to check if there is blank line between nodes
|
||||||
|
# used to be separated by the cut/moved region to prevent headline loss.
|
||||||
|
if blnumCut:
|
||||||
|
if tlnumCut < len(bnodes):
|
||||||
|
assert blnumCut == bnodes[tlnumCut]-1
|
||||||
|
else:
|
||||||
|
assert blnumCut == Z
|
||||||
|
|
||||||
|
# Total number of added lines minus number of deleted lines.
|
||||||
|
b_delta = 0
|
||||||
|
|
||||||
|
### After 'cut' or 'up': insert blank line if there is none
|
||||||
|
# between the nodes used to be separated by the cut/moved region.
|
||||||
|
if (oop=='cut' or oop=='up') and (0 < blnumCut < Z) and Body[blnumCut-1].strip():
|
||||||
|
Body[blnumCut:blnumCut] = ['']
|
||||||
|
update_bnodes(VO, tlnumCut+1 ,1)
|
||||||
|
b_delta+=1
|
||||||
|
|
||||||
|
if oop=='cut':
|
||||||
|
return
|
||||||
|
|
||||||
|
### Prevent loss of headline after last node in the region:
|
||||||
|
# insert blank line after blnum2 if blnum2 is not blank, that is insert
|
||||||
|
# blank line before bnode at tlnum2+1.
|
||||||
|
if blnum2 < Z and Body[blnum2-1].strip():
|
||||||
|
Body[blnum2:blnum2] = ['']
|
||||||
|
update_bnodes(VO, tlnum2+1 ,1)
|
||||||
|
b_delta+=1
|
||||||
|
|
||||||
|
### Change levels and/or styles of headlines in the affected region.
|
||||||
|
# Always do this after Paste, even if level is unchanged -- adornments can
|
||||||
|
# be different when pasting from other outlines.
|
||||||
|
# Examine each headline, from bottom to top, and change adornment style.
|
||||||
|
# To change from underline to overline style:
|
||||||
|
# insert overline.
|
||||||
|
# To change from overline to underline style:
|
||||||
|
# delete overline if there is blank before it;
|
||||||
|
# otherwise change overline to blank line;
|
||||||
|
# remove inset from headline text.
|
||||||
|
# Update bnodes after inserting or deleting a line.
|
||||||
|
if levDelta or oop=='paste':
|
||||||
|
ads_levels = VO.ads_levels
|
||||||
|
levels_ads = dict([[v,k] for k,v in ads_levels.items()])
|
||||||
|
# Add adornment styles for new levels. Can't do this in the main loop
|
||||||
|
# because it goes backwards and thus will add styles in reverse order.
|
||||||
|
for i in xrange(tlnum1, tlnum2+1):
|
||||||
|
lev = levels[i-1]
|
||||||
|
if not lev in levels_ads:
|
||||||
|
ad = get_new_ad(levels_ads, ads_levels, lev)
|
||||||
|
levels_ads[lev] = ad
|
||||||
|
ads_levels[ad] = lev
|
||||||
|
for i in xrange(tlnum2, tlnum1-1, -1):
|
||||||
|
# required level (VO.levels has been updated)
|
||||||
|
lev = levels[i-1]
|
||||||
|
# required adornment style
|
||||||
|
ad = levels_ads[lev]
|
||||||
|
|
||||||
|
# deduce current adornment style
|
||||||
|
bln = bnodes[i-1]
|
||||||
|
L1 = Body[bln-1].rstrip()
|
||||||
|
L2 = Body[bln].rstrip()
|
||||||
|
if bln+1 < len(Body):
|
||||||
|
L3 = Body[bln+1].rstrip()
|
||||||
|
else:
|
||||||
|
L3 = ''
|
||||||
|
ad_ = deduce_ad_style(L1,L2,L3,ENC)
|
||||||
|
|
||||||
|
# change adornment style
|
||||||
|
# see deduce_ad_style() for diagram
|
||||||
|
if ad_==ad:
|
||||||
|
continue
|
||||||
|
elif len(ad_)==1 and len(ad)==1:
|
||||||
|
Body[bln] = ad*len(L2)
|
||||||
|
elif len(ad_)==2 and len(ad)==2:
|
||||||
|
Body[bln-1] = ad[0]*len(L1)
|
||||||
|
Body[bln+1] = ad[0]*len(L3)
|
||||||
|
elif len(ad_)==1 and len(ad)==2:
|
||||||
|
# change underline if different
|
||||||
|
if not ad_ == ad[0]:
|
||||||
|
Body[bln] = ad[0]*len(L2)
|
||||||
|
# insert overline; current bnode doesn't change
|
||||||
|
Body[bln-1:bln-1] = [ad[0]*len(L2)]
|
||||||
|
update_bnodes(VO, i+1, 1)
|
||||||
|
b_delta+=1
|
||||||
|
elif len(ad_)==2 and len(ad)==1:
|
||||||
|
# change underline if different
|
||||||
|
if not ad_[0] == ad:
|
||||||
|
Body[bln+1] = ad*len(L3)
|
||||||
|
# remove headline inset if any
|
||||||
|
if not len(L2) == len(L2.lstrip()):
|
||||||
|
Body[bln] = L2.lstrip()
|
||||||
|
# check if line before overline is blank
|
||||||
|
if bln >1:
|
||||||
|
L0 = Body[bln-2].rstrip()
|
||||||
|
else:
|
||||||
|
L0 = ''
|
||||||
|
# there is blank before overline
|
||||||
|
# delete overline; current bnode doesn't change
|
||||||
|
if not L0:
|
||||||
|
Body[bln-1:bln] = []
|
||||||
|
update_bnodes(VO, i+1, -1)
|
||||||
|
b_delta-=1
|
||||||
|
# there is no blank before overline
|
||||||
|
# change overline to blank; only current bnode needs updating
|
||||||
|
else:
|
||||||
|
Body[bln-1] = ''
|
||||||
|
bnodes[i-1]+=1
|
||||||
|
|
||||||
|
### Prevent loss of first headline: make sure it is preceded by a blank line
|
||||||
|
blnum1 = bnodes[tlnum1-1]
|
||||||
|
if blnum1 > 1 and Body[blnum1-2].strip():
|
||||||
|
Body[blnum1-1:blnum1-1] = ['']
|
||||||
|
update_bnodes(VO, tlnum1 ,1)
|
||||||
|
b_delta+=1
|
||||||
|
|
||||||
|
### After 'down' : insert blank line if there is none
|
||||||
|
# between the nodes used to be separated by the moved region.
|
||||||
|
if oop=='down' and (0 < blnumCut < Z) and Body[blnumCut-1].strip():
|
||||||
|
Body[blnumCut:blnumCut] = ['']
|
||||||
|
update_bnodes(VO, tlnumCut+1 ,1)
|
||||||
|
b_delta+=1
|
||||||
|
|
||||||
|
assert len(Body) == Z + b_delta
|
||||||
|
|
||||||
|
|
||||||
|
def update_bnodes(VO, tlnum, delta):
|
||||||
|
"""Update VO.bnodes by adding/substracting delta to each bnode
|
||||||
|
starting with bnode at tlnum and to the end.
|
||||||
|
"""
|
||||||
|
bnodes = VO.bnodes
|
||||||
|
for i in xrange(tlnum, len(bnodes)+1):
|
||||||
|
bnodes[i-1] += delta
|
||||||
|
|
||||||
|
|
||||||
|
def get_new_ad(levels_ads, ads_levels, level):
|
||||||
|
"""Return adornment style for new level, that is level missing from
|
||||||
|
levels_ads and ads_levels.
|
||||||
|
"""
|
||||||
|
for ad in AD_STYLES:
|
||||||
|
if not ad in ads_levels:
|
||||||
|
return ad
|
||||||
|
# all 64 adornment styles are in use, return style for level 64
|
||||||
|
assert len(levels_ads)==64
|
||||||
|
return levels_ads[64]
|
||||||
|
|
||||||
|
|
||||||
|
def deduce_ad_style(L1,L2,L3,ENC):
|
||||||
|
"""Deduce adornment style given first 3 lines of Body node.
|
||||||
|
1st line is bnode line. Lines must be rstripped.
|
||||||
|
"""
|
||||||
|
# '--' style '-' style
|
||||||
|
#
|
||||||
|
# L0 L0 Body[bln-2]
|
||||||
|
# ---- L1 head L1 <--bnode Body[bln-1]
|
||||||
|
# head L2 ---- L2 Body[bln]
|
||||||
|
# ---- L3 text L3 Body[bln+1]
|
||||||
|
|
||||||
|
# bnode is overline
|
||||||
|
if L1==L3 and (L1[0] in AD_CHARS) and L1.lstrip(L1[0])=='' and (len(L1) >= len(L2.decode(ENC,'replace'))):
|
||||||
|
ad = 2*L1[0]
|
||||||
|
# bnode is headline text
|
||||||
|
elif (L2[0] in AD_CHARS) and L2.lstrip(L2[0])=='' and (len(L2) >= len(L1.decode(ENC,'replace'))):
|
||||||
|
ad = L2[0]
|
||||||
|
else:
|
||||||
|
print L1
|
||||||
|
print L2
|
||||||
|
print L3
|
||||||
|
print ENC
|
||||||
|
assert None
|
||||||
|
|
||||||
|
return ad
|
||||||
|
|
||||||
|
# wrong if perverse headline like this (correct ad style is '-')
|
||||||
|
#
|
||||||
|
# ^^^^^
|
||||||
|
# -----
|
||||||
|
# ^^^^^
|
||||||
|
# text
|
||||||
|
|
||||||
|
|
||||||
|
def deduce_ad_style_test(VO):
|
||||||
|
""" Test to verify deduce_ad_style(). Execute from Vim
|
||||||
|
:py voom.VOOMS[1].mModule.deduce_ad_style_test(voom.VOOMS[1])
|
||||||
|
"""
|
||||||
|
bnodes, levels, Body = VO.bnodes, VO.levels, VO.Body
|
||||||
|
ads_levels = VO.ads_levels
|
||||||
|
levels_ads = dict([[v,k] for k,v in ads_levels.items()])
|
||||||
|
ENC = VO.enc
|
||||||
|
|
||||||
|
for i in xrange(2, len(bnodes)+1):
|
||||||
|
bln = bnodes[i-1]
|
||||||
|
L1 = Body[bln-1].rstrip()
|
||||||
|
L2 = Body[bln].rstrip()
|
||||||
|
if bln+1 < len(Body):
|
||||||
|
L3 = Body[bln+1].rstrip()
|
||||||
|
else:
|
||||||
|
L3 = ''
|
||||||
|
ad = deduce_ad_style(L1,L2,L3,ENC)
|
||||||
|
lev = levels[i-1]
|
||||||
|
print i, ad, levels_ads[lev]
|
||||||
|
assert ad == levels_ads[lev]
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,97 @@
|
||||||
|
# voom_mode_thevimoutliner.py
|
||||||
|
# Last Modified: 2011-05-01
|
||||||
|
# VOoM -- Vim two-pane outliner, plugin for Python-enabled Vim version 7.x
|
||||||
|
# Website: http://www.vim.org/scripts/script.php?script_id=2657
|
||||||
|
# Author: Vlad Irnov (vlad DOT irnov AT gmail DOT com)
|
||||||
|
# License: This program is free software. It comes without any warranty,
|
||||||
|
# to the extent permitted by applicable law. You can redistribute it
|
||||||
|
# and/or modify it under the terms of the Do What The Fuck You Want To
|
||||||
|
# Public License, Version 2, as published by Sam Hocevar.
|
||||||
|
# See http://sam.zoy.org/wtfpl/COPYING for more details.
|
||||||
|
|
||||||
|
"""
|
||||||
|
VOoM markup mode for The Vim Outliner format.
|
||||||
|
See |voom_mode_thevimoutliner|, ../../doc/voom.txt#*voom_mode_thevimoutliner*
|
||||||
|
|
||||||
|
Headlines and body lines are indented with Tabs. Number of tabs indicates
|
||||||
|
level. 0 Tabs means level 1.
|
||||||
|
|
||||||
|
Headlines are lines with >=0 Tabs followed by any character except '|'.
|
||||||
|
|
||||||
|
Blank lines are not headlines.
|
||||||
|
"""
|
||||||
|
|
||||||
|
# Body lines start with these chars
|
||||||
|
BODY_CHARS = {'|':0,}
|
||||||
|
|
||||||
|
# ------ the rest is identical to voom_mode_vimoutliner.py -------------------
|
||||||
|
def hook_makeOutline(VO, blines):
|
||||||
|
"""Return (tlines, bnodes, levels) for Body lines blines.
|
||||||
|
blines is either Vim buffer object (Body) or list of buffer lines.
|
||||||
|
"""
|
||||||
|
Z = len(blines)
|
||||||
|
tlines, bnodes, levels = [], [], []
|
||||||
|
tlines_add, bnodes_add, levels_add = tlines.append, bnodes.append, levels.append
|
||||||
|
for i in xrange(Z):
|
||||||
|
bline = blines[i].rstrip()
|
||||||
|
if not bline:
|
||||||
|
continue
|
||||||
|
head = bline.lstrip('\t')
|
||||||
|
if head[0] in BODY_CHARS:
|
||||||
|
continue
|
||||||
|
lev = len(bline) - len(head) + 1
|
||||||
|
|
||||||
|
tline = ' %s|%s' %('. '*(lev-1), head)
|
||||||
|
tlines_add(tline)
|
||||||
|
bnodes_add(i+1)
|
||||||
|
levels_add(lev)
|
||||||
|
return (tlines, bnodes, levels)
|
||||||
|
|
||||||
|
|
||||||
|
def hook_newHeadline(VO, level, blnum, tlnum):
|
||||||
|
"""Return (tree_head, bodyLines).
|
||||||
|
tree_head is new headline string in Tree buffer (text after |).
|
||||||
|
bodyLines is list of lines to insert in Body buffer.
|
||||||
|
"""
|
||||||
|
tree_head = 'NewHeadline'
|
||||||
|
bodyLines = ['%s%s' %('\t'*(level-1), tree_head),]
|
||||||
|
return (tree_head, bodyLines)
|
||||||
|
|
||||||
|
|
||||||
|
#def hook_changeLevBodyHead(VO, h, levDelta):
|
||||||
|
#"""Increase of decrease level number of Body headline by levDelta."""
|
||||||
|
#if levDelta==0: return h
|
||||||
|
|
||||||
|
def hook_doBodyAfterOop(VO, oop, levDelta, blnum1, tlnum1, blnum2, tlnum2, blnumCut, tlnumCut):
|
||||||
|
# this is instead of hook_changeLevBodyHead()
|
||||||
|
if not levDelta: return
|
||||||
|
|
||||||
|
indent = abs(levDelta) * '\t'
|
||||||
|
|
||||||
|
Body = VO.Body
|
||||||
|
Z = len(Body)
|
||||||
|
|
||||||
|
# ---- identical to voom_mode_python.py code ----------------------------
|
||||||
|
if blnum1:
|
||||||
|
assert blnum1 == VO.bnodes[tlnum1-1]
|
||||||
|
if tlnum2 < len(VO.bnodes):
|
||||||
|
assert blnum2 == VO.bnodes[tlnum2]-1
|
||||||
|
else:
|
||||||
|
assert blnum2 == Z
|
||||||
|
|
||||||
|
# dedent (if possible) or indent every non-blank line in Body region blnum1,blnum2
|
||||||
|
blines = []
|
||||||
|
for i in xrange(blnum1-1,blnum2):
|
||||||
|
line = Body[i]
|
||||||
|
if not line.strip():
|
||||||
|
blines.append(line)
|
||||||
|
continue
|
||||||
|
if levDelta > 0:
|
||||||
|
line = '%s%s' %(indent,line)
|
||||||
|
elif levDelta < 0 and line.startswith(indent):
|
||||||
|
line = line[len(indent):]
|
||||||
|
blines.append(line)
|
||||||
|
|
||||||
|
# replace Body region
|
||||||
|
Body[blnum1-1:blnum2] = blines
|
||||||
|
assert len(Body)==Z
|
|
@ -0,0 +1,105 @@
|
||||||
|
# voom_mode_txt2tags.py
|
||||||
|
# Last Modified: 2011-05-01
|
||||||
|
# VOoM -- Vim two-pane outliner, plugin for Python-enabled Vim version 7.x
|
||||||
|
# Website: http://www.vim.org/scripts/script.php?script_id=2657
|
||||||
|
# Author: Vlad Irnov (vlad DOT irnov AT gmail DOT com)
|
||||||
|
# License: This program is free software. It comes without any warranty,
|
||||||
|
# to the extent permitted by applicable law. You can redistribute it
|
||||||
|
# and/or modify it under the terms of the Do What The Fuck You Want To
|
||||||
|
# Public License, Version 2, as published by Sam Hocevar.
|
||||||
|
# See http://sam.zoy.org/wtfpl/COPYING for more details.
|
||||||
|
|
||||||
|
"""
|
||||||
|
VOoM markup mode for txt2tags titles.
|
||||||
|
See |voom_mode_txt2tags|, ../../doc/voom.txt#*voom_mode_txt2tags*
|
||||||
|
"""
|
||||||
|
|
||||||
|
import re
|
||||||
|
# from txt2tags.py
|
||||||
|
# titskel = r'^ *(?P<id>%s)(?P<txt>%s)\1(\[(?P<label>[\w-]*)\])?\s*$'
|
||||||
|
# bank[ 'title'] = re.compile(titskel%('[=]{1,5}','[^=](|.*[^=])'))
|
||||||
|
# bank['numtitle'] = re.compile(titskel%('[+]{1,5}','[^+](|.*[^+])'))
|
||||||
|
# === headline ===
|
||||||
|
headline1_match = re.compile(r'^ *(=+)([^=].*[^=]|[^=])(\1)(\[[\w-]*\])?\s*$').match
|
||||||
|
# +++ headline +++
|
||||||
|
headline2_match = re.compile(r'^ *(\++)([^+].*[^+]|[^+])(\1)(\[[\w-]*\])?\s*$').match
|
||||||
|
|
||||||
|
|
||||||
|
def hook_makeOutline(VO, blines):
|
||||||
|
"""Return (tlines, bnodes, levels) for Body lines blines.
|
||||||
|
blines is either Vim buffer object (Body) or list of buffer lines.
|
||||||
|
"""
|
||||||
|
Z = len(blines)
|
||||||
|
tlines, bnodes, levels = [], [], []
|
||||||
|
tlines_add, bnodes_add, levels_add = tlines.append, bnodes.append, levels.append
|
||||||
|
|
||||||
|
areaVerb,areaRaw,areaTagged = False,False,False
|
||||||
|
for i in xrange(Z):
|
||||||
|
bline = blines[i]
|
||||||
|
|
||||||
|
# ignore Verbatim/Raw/Tagged Areas
|
||||||
|
bline_rs = bline.rstrip()
|
||||||
|
if bline_rs=='```' and not (areaRaw or areaTagged):
|
||||||
|
areaVerb = not areaVerb; continue
|
||||||
|
elif bline_rs=='"""' and not (areaVerb or areaTagged):
|
||||||
|
areaRaw = not areaRaw; continue
|
||||||
|
elif bline_rs=="'''" and not (areaVerb or areaRaw):
|
||||||
|
areaTagged = not areaTagged; continue
|
||||||
|
if areaVerb or areaRaw or areaTagged: continue
|
||||||
|
|
||||||
|
# there can be leading spaces but not tabs
|
||||||
|
bline = bline.lstrip(' ')
|
||||||
|
if bline.startswith('='):
|
||||||
|
m = headline1_match(bline)
|
||||||
|
if not m: continue
|
||||||
|
plus = ''
|
||||||
|
elif bline.startswith('+'):
|
||||||
|
m = headline2_match(bline)
|
||||||
|
if not m: continue
|
||||||
|
plus = '+ '
|
||||||
|
else:
|
||||||
|
continue
|
||||||
|
lev = len(m.group(1))
|
||||||
|
head = '%s%s' %(plus, m.group(2).strip())
|
||||||
|
tline = ' %s|%s' %('. '*(lev-1), head)
|
||||||
|
tlines_add(tline)
|
||||||
|
bnodes_add(i+1)
|
||||||
|
levels_add(lev)
|
||||||
|
return (tlines, bnodes, levels)
|
||||||
|
|
||||||
|
|
||||||
|
def hook_newHeadline(VO, level, blnum, tlnum):
|
||||||
|
"""Return (tree_head, bodyLines).
|
||||||
|
tree_head is new headline string in Tree buffer (text after |).
|
||||||
|
bodyLines is list of lines to insert in Body buffer.
|
||||||
|
"""
|
||||||
|
tree_head = 'NewHeadline'
|
||||||
|
# choose = or + headline type -- same as previous headline
|
||||||
|
if tlnum > 1:
|
||||||
|
prev_head = VO.Body[VO.bnodes[tlnum-1] - 1]
|
||||||
|
if prev_head.lstrip()[0] == '=':
|
||||||
|
lev = '='*level
|
||||||
|
else:
|
||||||
|
lev = '+'*level
|
||||||
|
tree_head = '+ NewHeadline'
|
||||||
|
else:
|
||||||
|
lev = '='*level
|
||||||
|
bodyLines = ['%s NewHeadline %s' %(lev, lev), '']
|
||||||
|
return (tree_head, bodyLines)
|
||||||
|
|
||||||
|
|
||||||
|
def hook_changeLevBodyHead(VO, h, levDelta):
|
||||||
|
"""Increase of decrease level number of Body headline by levDelta."""
|
||||||
|
if levDelta==0: return h
|
||||||
|
hLS = h.lstrip()
|
||||||
|
if hLS[0] == '=':
|
||||||
|
m = headline1_match(h)
|
||||||
|
level = len(m.group(1))
|
||||||
|
s = '='*(level+levDelta)
|
||||||
|
elif hLS[0] == '+':
|
||||||
|
m = headline2_match(h)
|
||||||
|
level = len(m.group(1))
|
||||||
|
s = '+'*(level+levDelta)
|
||||||
|
else: assert False
|
||||||
|
return '%s%s%s%s%s' %(h[:m.start(1)], s, h[m.end(1):m.start(3)], s, h[m.end(3):])
|
||||||
|
|
|
@ -0,0 +1,91 @@
|
||||||
|
# voom_mode_viki.py
|
||||||
|
# Last Modified: 2011-10-28
|
||||||
|
# VOoM -- Vim two-pane outliner, plugin for Python-enabled Vim version 7.x
|
||||||
|
# Website: http://www.vim.org/scripts/script.php?script_id=2657
|
||||||
|
# Author: Vlad Irnov (vlad DOT irnov AT gmail DOT com)
|
||||||
|
# License: This program is free software. It comes without any warranty,
|
||||||
|
# to the extent permitted by applicable law. You can redistribute it
|
||||||
|
# and/or modify it under the terms of the Do What The Fuck You Want To
|
||||||
|
# Public License, Version 2, as published by Sam Hocevar.
|
||||||
|
# See http://sam.zoy.org/wtfpl/COPYING for more details.
|
||||||
|
|
||||||
|
"""
|
||||||
|
VOoM markup mode for headline markup used by Vim Viki/Deplate plugin.
|
||||||
|
See |voom_mode_viki|, ../../doc/voom.txt#*voom_mode_viki*
|
||||||
|
"""
|
||||||
|
|
||||||
|
import re
|
||||||
|
headline_match = re.compile(r'^(\*+)\s').match
|
||||||
|
|
||||||
|
# Ignore Regions other than #Region
|
||||||
|
#
|
||||||
|
# #Type [OPTIONS] <<EndOfRegion
|
||||||
|
# .......
|
||||||
|
# EndOfRegion
|
||||||
|
#
|
||||||
|
# syntax/viki.vim:
|
||||||
|
# syn region vikiRegion matchgroup=vikiMacroDelim
|
||||||
|
# \ start=/^[[:blank:]]*#\([A-Z]\([a-z][A-Za-z]*\)\?\>\|!!!\)\(\\\n\|.\)\{-}<<\z(.*\)$/
|
||||||
|
# \ end=/^[[:blank:]]*\z1[[:blank:]]*$/
|
||||||
|
# \ contains=@vikiText,vikiRegionNames
|
||||||
|
#
|
||||||
|
# EndOfRegion can be empty string, leading/trailing white space matters
|
||||||
|
# Don't know what !!! is for.
|
||||||
|
#
|
||||||
|
region_match = re.compile(r'^\s*#([A-Z]([a-z][A-Za-z]*)?)\b.*?<<(.*)').match
|
||||||
|
|
||||||
|
|
||||||
|
def hook_makeOutline(VO, blines):
|
||||||
|
"""Return (tlines, bnodes, levels) for Body lines blines.
|
||||||
|
blines is either Vim buffer object (Body) or list of buffer lines.
|
||||||
|
"""
|
||||||
|
Z = len(blines)
|
||||||
|
tlines, bnodes, levels = [], [], []
|
||||||
|
tlines_add, bnodes_add, levels_add = tlines.append, bnodes.append, levels.append
|
||||||
|
inRegion = False # EndOfRegion match object when inside a region
|
||||||
|
for i in xrange(Z):
|
||||||
|
bline = blines[i]
|
||||||
|
|
||||||
|
if inRegion:
|
||||||
|
if re.match(inRegion, bline):
|
||||||
|
inRegion = False
|
||||||
|
continue
|
||||||
|
|
||||||
|
if bline.lstrip().startswith('#') and '<<' in bline:
|
||||||
|
r_m = region_match(bline)
|
||||||
|
if r_m and r_m.group(1) != 'Region':
|
||||||
|
inRegion = '^\s*%s\s*$' %re.escape(r_m.group(3) or '')
|
||||||
|
continue
|
||||||
|
elif not bline.startswith('*'):
|
||||||
|
continue
|
||||||
|
|
||||||
|
m = headline_match(bline)
|
||||||
|
if not m:
|
||||||
|
continue
|
||||||
|
lev = len(m.group(1))
|
||||||
|
head = bline[lev:].strip()
|
||||||
|
tline = ' %s|%s' %('. '*(lev-1), head)
|
||||||
|
tlines_add(tline)
|
||||||
|
bnodes_add(i+1)
|
||||||
|
levels_add(lev)
|
||||||
|
return (tlines, bnodes, levels)
|
||||||
|
|
||||||
|
|
||||||
|
def hook_newHeadline(VO, level, blnum, tlnum):
|
||||||
|
"""Return (tree_head, bodyLines).
|
||||||
|
tree_head is new headline string in Tree buffer (text after |).
|
||||||
|
bodyLines is list of lines to insert in Body buffer.
|
||||||
|
"""
|
||||||
|
tree_head = 'NewHeadline'
|
||||||
|
bodyLines = ['%s %s' %('*'*level, tree_head), '']
|
||||||
|
return (tree_head, bodyLines)
|
||||||
|
|
||||||
|
|
||||||
|
def hook_changeLevBodyHead(VO, h, levDelta):
|
||||||
|
"""Increase of decrease level number of Body headline by levDelta."""
|
||||||
|
if levDelta==0: return h
|
||||||
|
m = headline_match(h)
|
||||||
|
level = len(m.group(1))
|
||||||
|
return '%s%s' %('*'*(level+levDelta), h[m.end(1):])
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,96 @@
|
||||||
|
# voom_mode_vimoutliner.py
|
||||||
|
# Last Modified: 2011-05-01
|
||||||
|
# VOoM -- Vim two-pane outliner, plugin for Python-enabled Vim version 7.x
|
||||||
|
# Website: http://www.vim.org/scripts/script.php?script_id=2657
|
||||||
|
# Author: Vlad Irnov (vlad DOT irnov AT gmail DOT com)
|
||||||
|
# License: This program is free software. It comes without any warranty,
|
||||||
|
# to the extent permitted by applicable law. You can redistribute it
|
||||||
|
# and/or modify it under the terms of the Do What The Fuck You Want To
|
||||||
|
# Public License, Version 2, as published by Sam Hocevar.
|
||||||
|
# See http://sam.zoy.org/wtfpl/COPYING for more details.
|
||||||
|
|
||||||
|
"""
|
||||||
|
VOoM markup mode for VimOutliner format.
|
||||||
|
See |voom_mode_vimoutliner|, ../../doc/voom.txt#*voom_mode_vimoutliner*
|
||||||
|
|
||||||
|
Headlines are lines with >=0 Tabs followed by any character except:
|
||||||
|
: ; | > <
|
||||||
|
Otherwise this mode is identical to the "thevimoutliner" mode.
|
||||||
|
"""
|
||||||
|
|
||||||
|
# Body lines start with these chars
|
||||||
|
BODY_CHARS = {':':0, ';':0, '|':0, '<':0, '>':0,}
|
||||||
|
|
||||||
|
|
||||||
|
#-------------copy/pasted from voom_mode_thevimoutliner.py -------------------
|
||||||
|
def hook_makeOutline(VO, blines):
|
||||||
|
"""Return (tlines, bnodes, levels) for Body lines blines.
|
||||||
|
blines is either Vim buffer object (Body) or list of buffer lines.
|
||||||
|
"""
|
||||||
|
Z = len(blines)
|
||||||
|
tlines, bnodes, levels = [], [], []
|
||||||
|
tlines_add, bnodes_add, levels_add = tlines.append, bnodes.append, levels.append
|
||||||
|
for i in xrange(Z):
|
||||||
|
bline = blines[i].rstrip()
|
||||||
|
if not bline:
|
||||||
|
continue
|
||||||
|
head = bline.lstrip('\t')
|
||||||
|
if head[0] in BODY_CHARS:
|
||||||
|
continue
|
||||||
|
lev = len(bline) - len(head) + 1
|
||||||
|
|
||||||
|
tline = ' %s|%s' %('. '*(lev-1), head)
|
||||||
|
tlines_add(tline)
|
||||||
|
bnodes_add(i+1)
|
||||||
|
levels_add(lev)
|
||||||
|
return (tlines, bnodes, levels)
|
||||||
|
|
||||||
|
|
||||||
|
def hook_newHeadline(VO, level, blnum, tlnum):
|
||||||
|
"""Return (tree_head, bodyLines).
|
||||||
|
tree_head is new headline string in Tree buffer (text after |).
|
||||||
|
bodyLines is list of lines to insert in Body buffer.
|
||||||
|
column is cursor position in new headline in Body buffer.
|
||||||
|
"""
|
||||||
|
tree_head = 'NewHeadline'
|
||||||
|
bodyLines = ['%s%s' %('\t'*(level-1), tree_head),]
|
||||||
|
return (tree_head, bodyLines)
|
||||||
|
|
||||||
|
|
||||||
|
#def hook_changeLevBodyHead(VO, h, levDelta):
|
||||||
|
#"""Increase of decrease level number of Body headline by levDelta."""
|
||||||
|
#if levDelta==0: return h
|
||||||
|
|
||||||
|
def hook_doBodyAfterOop(VO, oop, levDelta, blnum1, tlnum1, blnum2, tlnum2, blnumCut, tlnumCut):
|
||||||
|
# this is instead of hook_changeLevBodyHead()
|
||||||
|
if not levDelta: return
|
||||||
|
|
||||||
|
indent = abs(levDelta) * '\t'
|
||||||
|
|
||||||
|
Body = VO.Body
|
||||||
|
Z = len(Body)
|
||||||
|
|
||||||
|
# ---- identical to Python mode ----
|
||||||
|
if blnum1:
|
||||||
|
assert blnum1 == VO.bnodes[tlnum1-1]
|
||||||
|
if tlnum2 < len(VO.bnodes):
|
||||||
|
assert blnum2 == VO.bnodes[tlnum2]-1
|
||||||
|
else:
|
||||||
|
assert blnum2 == Z
|
||||||
|
|
||||||
|
# dedent (if possible) or indent every non-blank line in Body region blnum1,blnum2
|
||||||
|
blines = []
|
||||||
|
for i in xrange(blnum1-1,blnum2):
|
||||||
|
line = Body[i]
|
||||||
|
if not line.strip():
|
||||||
|
blines.append(line)
|
||||||
|
continue
|
||||||
|
if levDelta > 0:
|
||||||
|
line = '%s%s' %(indent,line)
|
||||||
|
elif levDelta < 0 and line.startswith(indent):
|
||||||
|
line = line[len(indent):]
|
||||||
|
blines.append(line)
|
||||||
|
|
||||||
|
# replace Body region
|
||||||
|
Body[blnum1-1:blnum2] = blines
|
||||||
|
assert len(Body)==Z
|
|
@ -0,0 +1,70 @@
|
||||||
|
# voom_mode_vimwiki.py
|
||||||
|
# Last Modified: 2011-05-01
|
||||||
|
# VOoM -- Vim two-pane outliner, plugin for Python-enabled Vim version 7.x
|
||||||
|
# Website: http://www.vim.org/scripts/script.php?script_id=2657
|
||||||
|
# Author: Vlad Irnov (vlad DOT irnov AT gmail DOT com)
|
||||||
|
# License: This program is free software. It comes without any warranty,
|
||||||
|
# to the extent permitted by applicable law. You can redistribute it
|
||||||
|
# and/or modify it under the terms of the Do What The Fuck You Want To
|
||||||
|
# Public License, Version 2, as published by Sam Hocevar.
|
||||||
|
# See http://sam.zoy.org/wtfpl/COPYING for more details.
|
||||||
|
|
||||||
|
"""
|
||||||
|
VOoM markup mode for headline markup used by vimwiki plugin:
|
||||||
|
http://www.vim.org/scripts/script.php?script_id=2226
|
||||||
|
See |voom_mode_vimwiki|, ../../doc/voom.txt#*voom_mode_vimwiki*
|
||||||
|
|
||||||
|
= headline level 1 =
|
||||||
|
body text
|
||||||
|
== headline level 2 ==
|
||||||
|
body text
|
||||||
|
=== headline level 3 ===
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
import re
|
||||||
|
headline_match = re.compile(r'^\s*(=+).+(\1)\s*$').match
|
||||||
|
|
||||||
|
|
||||||
|
def hook_makeOutline(VO, blines):
|
||||||
|
"""Return (tlines, bnodes, levels) for Body lines blines.
|
||||||
|
blines is either Vim buffer object (Body) or list of buffer lines.
|
||||||
|
"""
|
||||||
|
Z = len(blines)
|
||||||
|
tlines, bnodes, levels = [], [], []
|
||||||
|
tlines_add, bnodes_add, levels_add = tlines.append, bnodes.append, levels.append
|
||||||
|
for i in xrange(Z):
|
||||||
|
bline = blines[i].strip()
|
||||||
|
if not bline.startswith('='):
|
||||||
|
continue
|
||||||
|
m = headline_match(bline)
|
||||||
|
if not m:
|
||||||
|
continue
|
||||||
|
lev = len(m.group(1))
|
||||||
|
bline = bline.strip()
|
||||||
|
head = bline[lev:-lev].strip()
|
||||||
|
tline = ' %s|%s' %('. '*(lev-1), head)
|
||||||
|
tlines_add(tline)
|
||||||
|
bnodes_add(i+1)
|
||||||
|
levels_add(lev)
|
||||||
|
return (tlines, bnodes, levels)
|
||||||
|
|
||||||
|
|
||||||
|
def hook_newHeadline(VO, level, blnum, tlnum):
|
||||||
|
"""Return (tree_head, bodyLines).
|
||||||
|
tree_head is new headline string in Tree buffer (text after |).
|
||||||
|
bodyLines is list of lines to insert in Body buffer.
|
||||||
|
"""
|
||||||
|
tree_head = 'NewHeadline'
|
||||||
|
bodyLines = ['%s %s %s' %('='*level, tree_head, '='*level), '']
|
||||||
|
return (tree_head, bodyLines)
|
||||||
|
|
||||||
|
|
||||||
|
def hook_changeLevBodyHead(VO, h, levDelta):
|
||||||
|
"""Increase of decrease level number of Body headline by levDelta."""
|
||||||
|
if levDelta==0: return h
|
||||||
|
m = headline_match(h)
|
||||||
|
level = len(m.group(1))
|
||||||
|
s = '='*(level+levDelta)
|
||||||
|
return '%s%s%s%s%s' %(h[:m.start(1)], s, h[m.end(1):m.start(2)], s, h[m.end(2):])
|
||||||
|
|
|
@ -0,0 +1,82 @@
|
||||||
|
# voom_mode_wiki.py
|
||||||
|
# Last Modified: 2011-05-01
|
||||||
|
# VOoM -- Vim two-pane outliner, plugin for Python-enabled Vim version 7.x
|
||||||
|
# Website: http://www.vim.org/scripts/script.php?script_id=2657
|
||||||
|
# Author: Vlad Irnov (vlad DOT irnov AT gmail DOT com)
|
||||||
|
# License: This program is free software. It comes without any warranty,
|
||||||
|
# to the extent permitted by applicable law. You can redistribute it
|
||||||
|
# and/or modify it under the terms of the Do What The Fuck You Want To
|
||||||
|
# Public License, Version 2, as published by Sam Hocevar.
|
||||||
|
# See http://sam.zoy.org/wtfpl/COPYING for more details.
|
||||||
|
|
||||||
|
"""
|
||||||
|
VOoM markup mode for MediaWiki headline markup.
|
||||||
|
See |voom_mode_wiki|, ../../doc/voom.txt#*voom_mode_wiki*
|
||||||
|
|
||||||
|
= headline level 1 =
|
||||||
|
some text
|
||||||
|
== headline level 2 ==
|
||||||
|
more text
|
||||||
|
=== headline level 3 === <!--comment-->
|
||||||
|
==== headline level 4 ====<!--comment-->
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
# can access main module voom.py, including global outline data
|
||||||
|
#import sys
|
||||||
|
#if 'voom' in sys.modules:
|
||||||
|
#voom = sys.modules['voom']
|
||||||
|
#VOOMS = voom.VOOMS
|
||||||
|
|
||||||
|
import re
|
||||||
|
comment_tag_sub = re.compile('<!--.*?-->\s*$').sub
|
||||||
|
headline_match = re.compile(r'^(=+).*(\1)\s*$').match
|
||||||
|
|
||||||
|
|
||||||
|
def hook_makeOutline(VO, blines):
|
||||||
|
"""Return (tlines, bnodes, levels) for Body lines blines.
|
||||||
|
blines is either Vim buffer object (Body) or list of buffer lines.
|
||||||
|
"""
|
||||||
|
Z = len(blines)
|
||||||
|
tlines, bnodes, levels = [], [], []
|
||||||
|
tlines_add, bnodes_add, levels_add = tlines.append, bnodes.append, levels.append
|
||||||
|
for i in xrange(Z):
|
||||||
|
if not blines[i].startswith('='):
|
||||||
|
continue
|
||||||
|
bline = blines[i]
|
||||||
|
if '<!--' in bline:
|
||||||
|
bline = comment_tag_sub('',bline)
|
||||||
|
bline = bline.strip()
|
||||||
|
m = headline_match(bline)
|
||||||
|
if not m:
|
||||||
|
continue
|
||||||
|
lev = len(m.group(1))
|
||||||
|
head = bline[lev:-lev].strip()
|
||||||
|
tline = ' %s|%s' %('. '*(lev-1), head)
|
||||||
|
tlines_add(tline)
|
||||||
|
bnodes_add(i+1)
|
||||||
|
levels_add(lev)
|
||||||
|
return (tlines, bnodes, levels)
|
||||||
|
|
||||||
|
|
||||||
|
def hook_newHeadline(VO, level, blnum, tlnum):
|
||||||
|
"""Return (tree_head, bodyLines).
|
||||||
|
tree_head is new headline string in Tree buffer (text after |).
|
||||||
|
bodyLines is list of lines to insert in Body buffer.
|
||||||
|
"""
|
||||||
|
tree_head = 'NewHeadline'
|
||||||
|
bodyLines = ['%s %s %s' %('='*level, tree_head, '='*level), '']
|
||||||
|
return (tree_head, bodyLines)
|
||||||
|
|
||||||
|
|
||||||
|
def hook_changeLevBodyHead(VO, h, levDelta):
|
||||||
|
"""Increase of decrease level number of Body headline by levDelta."""
|
||||||
|
if levDelta==0: return h
|
||||||
|
hs = h # need to strip trailing comment tags first
|
||||||
|
if '<!--' in h:
|
||||||
|
hs = comment_tag_sub('',hs)
|
||||||
|
m = headline_match(hs)
|
||||||
|
level = len(m.group(1))
|
||||||
|
s = '='*(level+levDelta)
|
||||||
|
return '%s%s%s%s' %(s, h[m.end(1):m.start(2)], s, h[m.end(2):])
|
||||||
|
|
|
@ -0,0 +1,76 @@
|
||||||
|
" This VOoM add-on shows how to customize Tree headline text for individual
|
||||||
|
" Body filetypes. It works only when outlining start fold markers with levels,
|
||||||
|
" doesn't do anything when using a markup mode.
|
||||||
|
"
|
||||||
|
" IMPORTANT: This file must be sourced after entire voom.vim has been sourced.
|
||||||
|
" Use option g:voom_user_command as explained in |voom_addons|.
|
||||||
|
" EXAMPLE: Move this file to $HOME/.vim/voom_add-ons/ and add the following
|
||||||
|
" line to .vimrc:
|
||||||
|
" let g:voom_user_command = "runtime! voom_add-ons/*.vim"
|
||||||
|
"
|
||||||
|
" NOTE: DO NOT place this file in Vim plugin folder or its subfolder.
|
||||||
|
"
|
||||||
|
|
||||||
|
" Do not load this script if voom.vim has not been sourced completely.
|
||||||
|
if !exists('*Voom_Exec')
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
" g:voom_rstrip_chars_{filetype} can be defined here instead of vimrc.
|
||||||
|
" Note that Space and Tab must be included.
|
||||||
|
if 0
|
||||||
|
let g:voom_rstrip_chars_autohotkey = "; \t"
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
python << EOF
|
||||||
|
|
||||||
|
# Replace default headline construction procedure with a custom function:
|
||||||
|
# 1. Define a make_head Python function.
|
||||||
|
# - It returns a string: Tree headline text.
|
||||||
|
# - It requires two arguments: bline and match.
|
||||||
|
# - bline is Body line from which we make Tree headline.
|
||||||
|
# - match is MatchObject produced by re.search() for bline and fold
|
||||||
|
# marker regex
|
||||||
|
# - bline[:match.start()] gives part of Body line before the
|
||||||
|
# matching fold marker. This is what we usually start from.
|
||||||
|
# 2. Register function in dictionary voom.MAKE_HEAD for filetypes with which
|
||||||
|
# it should be used.
|
||||||
|
|
||||||
|
import re
|
||||||
|
|
||||||
|
if 1:
|
||||||
|
# HTML headline: like default plus delete all html tags
|
||||||
|
html_tag_sub = re.compile('<.*?>').sub
|
||||||
|
def voom_make_head_html(bline,match):
|
||||||
|
s = bline[:match.start()].strip().strip('-=~').strip()
|
||||||
|
s = html_tag_sub('',s)
|
||||||
|
if s.endswith('<!'):
|
||||||
|
return s[:-2].strip()
|
||||||
|
else:
|
||||||
|
return s
|
||||||
|
voom.MAKE_HEAD['html'] = voom_make_head_html
|
||||||
|
|
||||||
|
if 0:
|
||||||
|
# Python headline: like default plus remove "def "
|
||||||
|
def voom_make_head_python(bline,match):
|
||||||
|
s = bline[:match.start()].lstrip().rstrip('# \t').strip('-=~').strip()
|
||||||
|
if s.startswith('def ') or s.startswith('def\t'):
|
||||||
|
return s[3:].lstrip()
|
||||||
|
else:
|
||||||
|
return s
|
||||||
|
voom.MAKE_HEAD['python'] = voom_make_head_python
|
||||||
|
#voom.MAKE_HEAD['ruby'] = voom_make_head_python
|
||||||
|
|
||||||
|
if 0:
|
||||||
|
# Vim headline: like default plus remove leading "fu ", "fun ", ..., "function ".
|
||||||
|
vim_func_sub = re.compile(r"^fu(n|nc|nct|ncti|nctio|nction)?!?\s+").sub
|
||||||
|
def voom_make_head_vim(bline,match):
|
||||||
|
s = bline[:match.start()].lstrip().rstrip('" \t').strip('-=~').strip()
|
||||||
|
s = vim_func_sub('',s)
|
||||||
|
return s
|
||||||
|
voom.MAKE_HEAD['vim'] = voom_make_head_vim
|
||||||
|
|
||||||
|
EOF
|
||||||
|
|
76
vim_plugins_src/VOoM-4.3/VOoM-4.3/voom_addons/voom_info.vim
Normal file
76
vim_plugins_src/VOoM-4.3/VOoM-4.3/voom_addons/voom_info.vim
Normal file
|
@ -0,0 +1,76 @@
|
||||||
|
" This is a sample VOoM add-on.
|
||||||
|
" It creates global command :VoomInfo which prints various outline information
|
||||||
|
" about the current buffer if it's a VOoM buffer (Tree or Body)
|
||||||
|
|
||||||
|
" This file can be sourced at any time like a regular Vim script. E.g., it can
|
||||||
|
" be dropped in folder ~/.vim/plugin/ . Of course, VOoM has to be installed for
|
||||||
|
" the command :VoomInfo to work.
|
||||||
|
" This works because the name of command function starts with 'Voom_'
|
||||||
|
|
||||||
|
|
||||||
|
com! VoomInfo call Voom_Info()
|
||||||
|
|
||||||
|
func! Voom_Info()
|
||||||
|
""""""" standard code for every VOoM add-on command
|
||||||
|
" Determine if the current buffer is a VOoM Tree buffer, Body buffer, or neither.
|
||||||
|
let [bufType,body,tree] = Voom_GetBufInfo()
|
||||||
|
" Error, outline is not available (Body is unloaded, outline update failed).
|
||||||
|
if body==-1 | return | endif
|
||||||
|
""" Do different things depending on the type of the current buffer.
|
||||||
|
" Current buffer is not a VOoM buffer (neither Tree nor Body).
|
||||||
|
" The error message is printed automatically. It can be suppressed by
|
||||||
|
" providing an optional argument: Voom_GetBufInfo(1)
|
||||||
|
if bufType==#'None'
|
||||||
|
"call Voom_ErrorMsg("VOoM: current buffer is not a VOoM buffer")
|
||||||
|
return
|
||||||
|
" Current buffer is a VOoM Body. Outline is updated automatically if needed.
|
||||||
|
elseif bufType==#'Body'
|
||||||
|
call Voom_WarningMsg("in VOoM Body buffer")
|
||||||
|
" Current buffer is a VOoM Tree.
|
||||||
|
elseif bufType==#'Tree'
|
||||||
|
call Voom_WarningMsg("in VOoM Tree buffer")
|
||||||
|
endif
|
||||||
|
" Get Vim-side outline data. NOTE: Do not modify these dictionaries!
|
||||||
|
let [voom_bodies, voom_trees] = Voom_GetData()
|
||||||
|
|
||||||
|
|
||||||
|
""""""" script-specific code
|
||||||
|
" Get Python-side data. This creates Vim local variables.
|
||||||
|
py voom_Info()
|
||||||
|
|
||||||
|
echo 'VOoM version:' Voom_GetVar('s:voom_did_quickload')
|
||||||
|
echo '__PyLog__ buffer number:' Voom_GetVar('s:voom_logbnr')
|
||||||
|
" print outline information
|
||||||
|
echo 'VOoM outline for:' getbufline(tree,1)[0][1:]
|
||||||
|
echo 'Current buffer is:' bufType
|
||||||
|
echo 'Body buffer number:' body
|
||||||
|
echo 'Tree buffer number:' tree
|
||||||
|
echo 'number of nodes:' l:nodesNumber
|
||||||
|
echo 'nodes with/without children:' l:nodesWithChildren '/' l:nodesWithoutChildren
|
||||||
|
echo 'max level:' l:maxLevel
|
||||||
|
echo 'selected node number:' voom_bodies[body].snLn
|
||||||
|
echo 'selected node headline text:' l:selectedHeadline
|
||||||
|
echo 'selected node level:' l:selectedNodeLevel
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
python << EOF
|
||||||
|
def voom_Info():
|
||||||
|
body, tree = int(vim.eval('l:body')), int(vim.eval('l:tree'))
|
||||||
|
VO = voom.VOOMS[body]
|
||||||
|
bnodes, levels = VO.bnodes, VO.levels
|
||||||
|
vim.command("let l:maxLevel=%s" %(max(levels)))
|
||||||
|
vim.command("let l:nodesNumber=%s" %(len(bnodes)))
|
||||||
|
nodesWithChildren = len([i for i in xrange(1,len(bnodes)+1) if voom.nodeHasChildren(VO,i)])
|
||||||
|
vim.command("let l:nodesWithChildren=%s" %nodesWithChildren)
|
||||||
|
nodesWithoutChildren = len([i for i in xrange(1,len(bnodes)+1) if not voom.nodeHasChildren(VO,i)])
|
||||||
|
vim.command("let l:nodesWithoutChildren=%s" %nodesWithoutChildren)
|
||||||
|
snLn = VO.snLn
|
||||||
|
treeline = VO.Tree[snLn-1]
|
||||||
|
if snLn>1:
|
||||||
|
selectedHeadline = treeline[treeline.find('|')+1:]
|
||||||
|
else:
|
||||||
|
selectedHeadline = "top-of-buffer"
|
||||||
|
vim.command("let [l:selectedNode,l:selectedHeadline]=[%s,'%s']" %(snLn, selectedHeadline.replace("'","''")))
|
||||||
|
vim.command("let l:selectedNodeLevel=%s" %levels[snLn-1])
|
||||||
|
EOF
|
||||||
|
|
|
@ -0,0 +1,127 @@
|
||||||
|
vim:fdm=marker
|
||||||
|
vim:foldtext=getline(v\:foldstart).'\ \ \ /'.v\:foldlevel.'...'.(v\:foldend-v\:foldstart)
|
||||||
|
foldtext=getline(v\:foldstart).'...'.(v\:foldend-v\:foldstart)
|
||||||
|
|
||||||
|
Vim folding seems to be limited to 20 levels.
|
||||||
|
|
||||||
|
--- 1 ---{{{1
|
||||||
|
1
|
||||||
|
|
||||||
|
--- 2 ---{{{2
|
||||||
|
2
|
||||||
|
|
||||||
|
--- 3 ---{{{3
|
||||||
|
3
|
||||||
|
|
||||||
|
--- 4 ---{{{4
|
||||||
|
4
|
||||||
|
|
||||||
|
--- 5 ---{{{5
|
||||||
|
5
|
||||||
|
|
||||||
|
--- 6 ---{{{6
|
||||||
|
6
|
||||||
|
|
||||||
|
--- 7 ---{{{7
|
||||||
|
7
|
||||||
|
|
||||||
|
--- 8 ---{{{8
|
||||||
|
8
|
||||||
|
|
||||||
|
--- 9 ---{{{9
|
||||||
|
9
|
||||||
|
|
||||||
|
--- 10 ---{{{10
|
||||||
|
10
|
||||||
|
|
||||||
|
--- 11 ---{{{11
|
||||||
|
11
|
||||||
|
|
||||||
|
--- 12 ---{{{12
|
||||||
|
12
|
||||||
|
|
||||||
|
--- 13 ---{{{13
|
||||||
|
13
|
||||||
|
|
||||||
|
--- 14 ---{{{14
|
||||||
|
14
|
||||||
|
|
||||||
|
--- 15 ---{{{15
|
||||||
|
15
|
||||||
|
|
||||||
|
--- 16 ---{{{16
|
||||||
|
16
|
||||||
|
|
||||||
|
--- 17 ---{{{17
|
||||||
|
17
|
||||||
|
|
||||||
|
--- 18 ---{{{18
|
||||||
|
18
|
||||||
|
|
||||||
|
--- 19 ---{{{19
|
||||||
|
19
|
||||||
|
|
||||||
|
--- 20 ---{{{20
|
||||||
|
20
|
||||||
|
|
||||||
|
--- 21 ---{{{21
|
||||||
|
21
|
||||||
|
|
||||||
|
--- 22 ---{{{22
|
||||||
|
22
|
||||||
|
|
||||||
|
--- 23 ---{{{23
|
||||||
|
23
|
||||||
|
|
||||||
|
--- 24 ---{{{24
|
||||||
|
24
|
||||||
|
|
||||||
|
--- 25 ---{{{25
|
||||||
|
25
|
||||||
|
|
||||||
|
--- 26 ---{{{26
|
||||||
|
26
|
||||||
|
|
||||||
|
--- 27 ---{{{27
|
||||||
|
27
|
||||||
|
|
||||||
|
--- 28 ---{{{28
|
||||||
|
28
|
||||||
|
|
||||||
|
--- 29 ---{{{29
|
||||||
|
29
|
||||||
|
|
||||||
|
--- 30 ---{{{30
|
||||||
|
30
|
||||||
|
|
||||||
|
--- 31 ---{{{31
|
||||||
|
31
|
||||||
|
|
||||||
|
--- 32 ---{{{32
|
||||||
|
32
|
||||||
|
|
||||||
|
--- 33 ---{{{33
|
||||||
|
33
|
||||||
|
|
||||||
|
--- 34 ---{{{34
|
||||||
|
34
|
||||||
|
|
||||||
|
--- 35 ---{{{35
|
||||||
|
35
|
||||||
|
|
||||||
|
--- 36 ---{{{36
|
||||||
|
36
|
||||||
|
|
||||||
|
--- 37 ---{{{37
|
||||||
|
37
|
||||||
|
|
||||||
|
--- 38 ---{{{38
|
||||||
|
38
|
||||||
|
|
||||||
|
--- 39 ---{{{39
|
||||||
|
39
|
||||||
|
|
||||||
|
--- 40 ---{{{40
|
||||||
|
40
|
||||||
|
|
||||||
|
~~~ ~~~ THE END ~~~ ~~~{{{1
|
355
vim_plugins_src/VOoM-4.3/VOoM-4.3/voom_samples/asciidoc.asciidoc
Normal file
355
vim_plugins_src/VOoM-4.3/VOoM-4.3/voom_samples/asciidoc.asciidoc
Normal file
|
@ -0,0 +1,355 @@
|
||||||
|
// :Voom asciidoc
|
||||||
|
// Tests for VOoM asciidoc mode. This file is in utf-8 encoding.
|
||||||
|
// vim: ft=asciidoc list fdm=manual
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Two-line style, levels 1 to 5 only
|
||||||
|
Level 1
|
||||||
|
=======
|
||||||
|
|
||||||
|
Level 2
|
||||||
|
-------
|
||||||
|
|
||||||
|
Level 3
|
||||||
|
~~~~~~~
|
||||||
|
|
||||||
|
Level 4
|
||||||
|
^^^^^^^
|
||||||
|
|
||||||
|
Level 5
|
||||||
|
+++++++
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// One-line style
|
||||||
|
= Level 1 =
|
||||||
|
== Level 2 ==
|
||||||
|
=== Level 3 ===
|
||||||
|
==== Level 4 ====
|
||||||
|
===== Level 5 =====
|
||||||
|
====== Level 6 ======
|
||||||
|
======= Level 7 =======
|
||||||
|
|
||||||
|
// Closing ='s are optional
|
||||||
|
= Level 1
|
||||||
|
== Level 2
|
||||||
|
=== Level 3
|
||||||
|
==== Level 4
|
||||||
|
===== Level 5
|
||||||
|
====== Level 6
|
||||||
|
======= Level 7
|
||||||
|
|
||||||
|
There must be a whitespace between headline text and ='s. The number of closing
|
||||||
|
='s must match the number of opening ='s.
|
||||||
|
|
||||||
|
//One-line style overrides two-line style:
|
||||||
|
===== Level 5
|
||||||
|
-------------
|
||||||
|
listing
|
||||||
|
-------------
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
UNDERLINE SIZE
|
||||||
|
==============
|
||||||
|
|
||||||
|
The underline must be of the same size as the title line +/- 2 chars.
|
||||||
|
Both the underline and the title line must be at least 2 chars long.
|
||||||
|
Trailing whitespace is always ignored and is not counted.
|
||||||
|
|
||||||
|
not headlines
|
||||||
|
-------------
|
||||||
|
|
||||||
|
headline
|
||||||
|
~~~~~
|
||||||
|
|
||||||
|
headline
|
||||||
|
~~~~~~~~~~~
|
||||||
|
|
||||||
|
заголовок
|
||||||
|
~~~~~~
|
||||||
|
|
||||||
|
заголовок
|
||||||
|
~~~~~~~~~~~~
|
||||||
|
|
||||||
|
A
|
||||||
|
---
|
||||||
|
|
||||||
|
|
||||||
|
headlines, 5 of each
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
headline
|
||||||
|
~~~~~~
|
||||||
|
headline
|
||||||
|
~~~~~~~
|
||||||
|
headline
|
||||||
|
~~~~~~~~
|
||||||
|
headline
|
||||||
|
~~~~~~~~~
|
||||||
|
headline
|
||||||
|
~~~~~~~~~~
|
||||||
|
|
||||||
|
заголовок
|
||||||
|
~~~~~~~
|
||||||
|
заголовок
|
||||||
|
~~~~~~~~
|
||||||
|
заголовок
|
||||||
|
~~~~~~~~~
|
||||||
|
заголовок
|
||||||
|
~~~~~~~~~~
|
||||||
|
заголовок
|
||||||
|
~~~~~~~~~~~
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
BLOCKID, ATTRIBUTELIST
|
||||||
|
======================
|
||||||
|
|
||||||
|
[[AAA]]
|
||||||
|
== headline 1 ==
|
||||||
|
|
||||||
|
[AAA]
|
||||||
|
== headline 2 ==
|
||||||
|
|
||||||
|
[[AAA]]
|
||||||
|
[AAA]
|
||||||
|
== headline 3 ==
|
||||||
|
|
||||||
|
[AAA]
|
||||||
|
[[AAA]]
|
||||||
|
== headline 4 ==
|
||||||
|
|
||||||
|
[AAA]
|
||||||
|
[[AAA]]
|
||||||
|
[AAA]
|
||||||
|
== headline 5 ==
|
||||||
|
text
|
||||||
|
[AAA]
|
||||||
|
== headline 6 ==
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
DELIMITED BLOCKS
|
||||||
|
================
|
||||||
|
|
||||||
|
////
|
||||||
|
== not headline ==
|
||||||
|
not headline
|
||||||
|
------------
|
||||||
|
////
|
||||||
|
|
||||||
|
++++
|
||||||
|
== not headline ==
|
||||||
|
not headline
|
||||||
|
------------
|
||||||
|
++++
|
||||||
|
|
||||||
|
----
|
||||||
|
== not headline ==
|
||||||
|
not headline
|
||||||
|
------------
|
||||||
|
|
||||||
|
....
|
||||||
|
== not headline ==
|
||||||
|
not headline
|
||||||
|
------------
|
||||||
|
....
|
||||||
|
|
||||||
|
****
|
||||||
|
== not headline ==
|
||||||
|
not headline
|
||||||
|
------------
|
||||||
|
****
|
||||||
|
____
|
||||||
|
== not headline ==
|
||||||
|
not headline
|
||||||
|
------------
|
||||||
|
____
|
||||||
|
|
||||||
|
====
|
||||||
|
== not headline ==
|
||||||
|
not headline
|
||||||
|
------------
|
||||||
|
====
|
||||||
|
|
||||||
|
// ambiguious cases
|
||||||
|
headline
|
||||||
|
--------
|
||||||
|
--------
|
||||||
|
listing, not headline
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
DISALLOWED UNDERLINED HEADLINES
|
||||||
|
===============================
|
||||||
|
|
||||||
|
No headlines here. The underline starts Delimited Block.
|
||||||
|
|
||||||
|
//BlockID
|
||||||
|
|
||||||
|
[[AAA]]
|
||||||
|
-------
|
||||||
|
== not headline
|
||||||
|
-------
|
||||||
|
|
||||||
|
//Attribute List
|
||||||
|
|
||||||
|
[AAA]
|
||||||
|
-----
|
||||||
|
== not headline
|
||||||
|
-----
|
||||||
|
|
||||||
|
//Comment line (exactly two // at start)
|
||||||
|
|
||||||
|
//AAA
|
||||||
|
-----
|
||||||
|
== not headline
|
||||||
|
-----
|
||||||
|
|
||||||
|
//Block Title, one dot is enough
|
||||||
|
|
||||||
|
.AAA
|
||||||
|
----
|
||||||
|
== not headline
|
||||||
|
-----
|
||||||
|
|
||||||
|
//Tab at start of title line is also not allowed, don't know why
|
||||||
|
|
||||||
|
not headline
|
||||||
|
------------
|
||||||
|
== not headline
|
||||||
|
-----
|
||||||
|
|
||||||
|
//An underlined headline cannot be just one character. They can in AsciiDoc.
|
||||||
|
|
||||||
|
A
|
||||||
|
--
|
||||||
|
|
||||||
|
B
|
||||||
|
---
|
||||||
|
|
||||||
|
//An underlined title cannot look like an underline or a Delimited Block line,
|
||||||
|
//that is a line of only =,-,+, etc.
|
||||||
|
|
||||||
|
===
|
||||||
|
---
|
||||||
|
===
|
||||||
|
|
||||||
|
+++
|
||||||
|
===
|
||||||
|
^^^
|
||||||
|
+++
|
||||||
|
|
||||||
|
|
||||||
|
++
|
||||||
|
==
|
||||||
|
^^
|
||||||
|
~~
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
BLANK LINES
|
||||||
|
===========
|
||||||
|
|
||||||
|
A blank separator line is required in front of most headlines.
|
||||||
|
But preceding [[]] and/or [] lines are treated as part of the headline.
|
||||||
|
|
||||||
|
// Wrong:
|
||||||
|
|
||||||
|
== headline ==
|
||||||
|
text
|
||||||
|
== not headline ==
|
||||||
|
[[X1]]
|
||||||
|
[blah]
|
||||||
|
== not headline ==
|
||||||
|
|
||||||
|
// Correct:
|
||||||
|
|
||||||
|
== headline 1 ==
|
||||||
|
text
|
||||||
|
|
||||||
|
== headline 2 ==
|
||||||
|
|
||||||
|
[[X1]]
|
||||||
|
[blah]
|
||||||
|
== headline 3 ==
|
||||||
|
|
||||||
|
// The second underline starts Delimited Block
|
||||||
|
headline
|
||||||
|
--------
|
||||||
|
text
|
||||||
|
not headline
|
||||||
|
------------
|
||||||
|
|
||||||
|
not headline
|
||||||
|
------------
|
||||||
|
|
||||||
|
// Comment lines before the headline are ignored
|
||||||
|
|
||||||
|
== headline 1 ==
|
||||||
|
text
|
||||||
|
// comment
|
||||||
|
== not headline ==
|
||||||
|
|
||||||
|
// comment
|
||||||
|
== headline 2 ==
|
||||||
|
text
|
||||||
|
|
||||||
|
// comment
|
||||||
|
// comment
|
||||||
|
[blah]
|
||||||
|
== headline 3 ==
|
||||||
|
|
||||||
|
// Blank line is NOT required between adjacent headlines
|
||||||
|
|
||||||
|
== headline 1 ==
|
||||||
|
== headline 2 ==
|
||||||
|
// comment
|
||||||
|
== headline 3 ==
|
||||||
|
headline 4
|
||||||
|
----------
|
||||||
|
[blah]
|
||||||
|
headline 5
|
||||||
|
----------
|
||||||
|
|
||||||
|
// after the end of a Delimited Block
|
||||||
|
|
||||||
|
== headline 1 ==
|
||||||
|
----------------------------
|
||||||
|
listing
|
||||||
|
----------------------------
|
||||||
|
== headline 2 ==
|
||||||
|
|
||||||
|
|
||||||
|
GOTCHAS
|
||||||
|
=======
|
||||||
|
|
||||||
|
There must be a blank line between a macro, an :atrrbute:, etc. and the
|
||||||
|
following headline.
|
||||||
|
The underline can be mistaken for a DelimitedBlock, which will kill subsequent
|
||||||
|
headlines.
|
||||||
|
|
||||||
|
== headline
|
||||||
|
|
||||||
|
:numbered:
|
||||||
|
== not headline
|
||||||
|
|
||||||
|
ifdef::something[]
|
||||||
|
not headline
|
||||||
|
------------
|
||||||
|
== not headline
|
||||||
|
---------------
|
||||||
|
|
||||||
|
== headline
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Binary file not shown.
|
@ -0,0 +1,433 @@
|
||||||
|
:Voom asciidoc
|
||||||
|
This is VOoM markup mode test file. Converted from **test_outline.txt**.
|
||||||
|
|
||||||
|
findme findme2
|
||||||
|
|
||||||
|
|
||||||
|
h 1
|
||||||
|
===
|
||||||
|
1 body
|
||||||
|
NEXT LINE IS FOR TESTS -- DO NOT MOVE OR EDIT
|
||||||
|
VO.levels=[1, 1, 2, 2, 1, 1, 2, 2, 3, 4, 3, 4, 5, 6, 7, 2, 1, 2, 1, 2, 2, 3, 3, 4, 5, 5, 3, 2, 3, 2, 3, 2, 1, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 2, 3, 4, 4, 4, 4, 5, 5, 4, 4, 5, 5, 3, 3, 3, 4, 4, 4, 4, 4, 4, 3, 4, 4, 4, 4, 4, 4, 3, 2, 3, 3]
|
||||||
|
|
||||||
|
|
||||||
|
[[X2]]
|
||||||
|
h 1.1
|
||||||
|
-----
|
||||||
|
1.1 body
|
||||||
|
|
||||||
|
[[X2]]
|
||||||
|
h 1.2
|
||||||
|
-----
|
||||||
|
1.2 body
|
||||||
|
|
||||||
|
|
||||||
|
h 2
|
||||||
|
===
|
||||||
|
2 body
|
||||||
|
|
||||||
|
|
||||||
|
h 3
|
||||||
|
===
|
||||||
|
3 body
|
||||||
|
|
||||||
|
[[X2]]
|
||||||
|
h 3.1
|
||||||
|
-----
|
||||||
|
3.1 body
|
||||||
|
|
||||||
|
[[X2]]
|
||||||
|
h 3.2
|
||||||
|
-----
|
||||||
|
3.2 body
|
||||||
|
|
||||||
|
[[X3]]
|
||||||
|
[ATTR]
|
||||||
|
h 3.2.1
|
||||||
|
~~~~~~~
|
||||||
|
3.2.1 body
|
||||||
|
|
||||||
|
|
||||||
|
h 3.2.1.1
|
||||||
|
^^^^^^^^^
|
||||||
|
3.2.1.1 body
|
||||||
|
xxxx findme findme
|
||||||
|
|
||||||
|
[[X3]]
|
||||||
|
[ATTR]
|
||||||
|
h 3.2.2
|
||||||
|
~~~~~~~
|
||||||
|
3.2.2 body
|
||||||
|
|
||||||
|
|
||||||
|
h 3.2.2.1
|
||||||
|
^^^^^^^^^
|
||||||
|
3.2.2.1 body
|
||||||
|
|
||||||
|
|
||||||
|
h 3.2.2.1.1
|
||||||
|
+++++++++++
|
||||||
|
3.2.2.1.1 body
|
||||||
|
|
||||||
|
|
||||||
|
====== h 3.2.2.1.2.1 ======
|
||||||
|
3.2.2.1.2.1 body
|
||||||
|
|
||||||
|
|
||||||
|
======= h 3.2.2.1.2.1.1 =======
|
||||||
|
3.2.2.1.2.1.1 body
|
||||||
|
|
||||||
|
[[X2]]
|
||||||
|
h 3.3
|
||||||
|
-----
|
||||||
|
3.3 body
|
||||||
|
|
||||||
|
|
||||||
|
h 4
|
||||||
|
===
|
||||||
|
4 body
|
||||||
|
|
||||||
|
[[X2]]
|
||||||
|
h 4.1
|
||||||
|
-----
|
||||||
|
4.1 body findme
|
||||||
|
|
||||||
|
|
||||||
|
h 5
|
||||||
|
===
|
||||||
|
5 body
|
||||||
|
|
||||||
|
[[X2]]
|
||||||
|
h 5.1
|
||||||
|
-----
|
||||||
|
5.1 body
|
||||||
|
|
||||||
|
[[X2]]
|
||||||
|
h 5.2
|
||||||
|
-----
|
||||||
|
5.2 body
|
||||||
|
|
||||||
|
[[X3]]
|
||||||
|
[ATTR]
|
||||||
|
h 5.2.1
|
||||||
|
~~~~~~~
|
||||||
|
5.2.1 body
|
||||||
|
|
||||||
|
[[X3]]
|
||||||
|
[ATTR]
|
||||||
|
h 5.2.2
|
||||||
|
~~~~~~~
|
||||||
|
5.2.2 body
|
||||||
|
|
||||||
|
|
||||||
|
h 5.2.2.1
|
||||||
|
^^^^^^^^^
|
||||||
|
5.2.2.1 body
|
||||||
|
|
||||||
|
|
||||||
|
h 5.2.2.1.1
|
||||||
|
+++++++++++
|
||||||
|
5.2.2.1.1 body
|
||||||
|
|
||||||
|
|
||||||
|
h 5.2.2.1.2
|
||||||
|
+++++++++++
|
||||||
|
5.2.2.1.2 body
|
||||||
|
|
||||||
|
|
||||||
|
[[X3]]
|
||||||
|
[ATTR]
|
||||||
|
h 5.2.3
|
||||||
|
~~~~~~~
|
||||||
|
5.2.3 body
|
||||||
|
|
||||||
|
[[X2]]
|
||||||
|
h AA
|
||||||
|
----
|
||||||
|
a a a a
|
||||||
|
|
||||||
|
[[X3]]
|
||||||
|
[ATTR]
|
||||||
|
h AA.1
|
||||||
|
~~~~~~
|
||||||
|
a1 a1 a1 a1
|
||||||
|
|
||||||
|
[[X2]]
|
||||||
|
h BB
|
||||||
|
----
|
||||||
|
b b b b
|
||||||
|
|
||||||
|
[[X3]]
|
||||||
|
[ATTR]
|
||||||
|
h BB.1
|
||||||
|
~~~~~~
|
||||||
|
b1 b1 b1 b1 b1
|
||||||
|
|
||||||
|
[[X2]]
|
||||||
|
h 5.3
|
||||||
|
-----
|
||||||
|
5.3 body
|
||||||
|
findme
|
||||||
|
|
||||||
|
|
||||||
|
h tests
|
||||||
|
=======
|
||||||
|
|
||||||
|
[[X2]]
|
||||||
|
h syntax tests
|
||||||
|
--------------
|
||||||
|
Since v2.1 comment chars before foldmarker are stripped according to filetype.
|
||||||
|
Some Body filetypes have their own Tree syntax hi.
|
||||||
|
|
||||||
|
|
||||||
|
[[X3]]
|
||||||
|
[ATTR]
|
||||||
|
h //---TODO comment--- //
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
[[X3]]
|
||||||
|
[ATTR]
|
||||||
|
h "---comment--- "
|
||||||
|
~~~~~~~~~~~~~~~~~~
|
||||||
|
echo 'vim ok'
|
||||||
|
|
||||||
|
[[X3]]
|
||||||
|
[ATTR]
|
||||||
|
h #---comment--- #
|
||||||
|
~~~~~~~~~~~~~~~~~~
|
||||||
|
print 'py ok'
|
||||||
|
|
||||||
|
[[X3]]
|
||||||
|
[ATTR]
|
||||||
|
h %---comment--- %
|
||||||
|
~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
[[X3]]
|
||||||
|
[ATTR]
|
||||||
|
h /*---comment--- /*
|
||||||
|
~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
[[X3]]
|
||||||
|
[ATTR]
|
||||||
|
h <!-- Comment
|
||||||
|
~~~~~~~~~~~~~~
|
||||||
|
ft=html,xml
|
||||||
|
|
||||||
|
[[X3]]
|
||||||
|
[ATTR]
|
||||||
|
h html head <!
|
||||||
|
~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
[[X3]]
|
||||||
|
[ATTR]
|
||||||
|
h /organizer node/
|
||||||
|
~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
[[X3]]
|
||||||
|
[ATTR]
|
||||||
|
h !warning mark
|
||||||
|
~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
[[X2]]
|
||||||
|
h Voomgrep tests
|
||||||
|
----------------
|
||||||
|
:Voomg Spam and ham not bacon
|
||||||
|
:Voomg Spam and\ ham not\ bacon
|
||||||
|
:Voomg Spam and\\ ham not\\ bacon
|
||||||
|
\Spam// ' "
|
||||||
|
|
||||||
|
[[X3]]
|
||||||
|
[ATTR]
|
||||||
|
h n44 breakfast
|
||||||
|
~~~~~~~~~~~~~~~
|
||||||
|
eggs
|
||||||
|
bacon
|
||||||
|
|
||||||
|
[[X3]]
|
||||||
|
[ATTR]
|
||||||
|
h n45 lunch
|
||||||
|
~~~~~~~~~~~
|
||||||
|
Spam Spam Spam Spam Spam Spam Spam Spam Spam
|
||||||
|
Spam Spam Spam Spam Spam Spam Spam Spam Spam
|
||||||
|
Spam Spam Spam Spam Spam Spam Spam Spam Spam
|
||||||
|
ham
|
||||||
|
|
||||||
|
[[X3]]
|
||||||
|
[ATTR]
|
||||||
|
h n46 dinner
|
||||||
|
~~~~~~~~~~~~
|
||||||
|
eggs
|
||||||
|
Spam
|
||||||
|
ham
|
||||||
|
|
||||||
|
[[X3]]
|
||||||
|
[ATTR]
|
||||||
|
h n47 snack
|
||||||
|
~~~~~~~~~~~
|
||||||
|
bacon
|
||||||
|
spam
|
||||||
|
HAM
|
||||||
|
beef
|
||||||
|
|
||||||
|
[[X2]]
|
||||||
|
h sort tests
|
||||||
|
------------
|
||||||
|
|
||||||
|
[[X3]]
|
||||||
|
[ATTR]
|
||||||
|
h node 2
|
||||||
|
~~~~~~~~
|
||||||
|
|
||||||
|
|
||||||
|
h dddd
|
||||||
|
^^^^^^
|
||||||
|
d1
|
||||||
|
|
||||||
|
|
||||||
|
h eeee
|
||||||
|
^^^^^^
|
||||||
|
|
||||||
|
|
||||||
|
h dddd
|
||||||
|
^^^^^^
|
||||||
|
d2
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
h bbbb
|
||||||
|
^^^^^^
|
||||||
|
b
|
||||||
|
|
||||||
|
|
||||||
|
h b_yyy
|
||||||
|
+++++++
|
||||||
|
|
||||||
|
|
||||||
|
h b_xxx
|
||||||
|
+++++++
|
||||||
|
|
||||||
|
|
||||||
|
h cccc
|
||||||
|
^^^^^^
|
||||||
|
c
|
||||||
|
|
||||||
|
|
||||||
|
h aaaa
|
||||||
|
^^^^^^
|
||||||
|
a
|
||||||
|
|
||||||
|
h a_nnn
|
||||||
|
+++++++
|
||||||
|
|
||||||
|
|
||||||
|
h a_mmm
|
||||||
|
+++++++
|
||||||
|
|
||||||
|
[[X3]]
|
||||||
|
[ATTR]
|
||||||
|
h node 22
|
||||||
|
~~~~~~~~~
|
||||||
|
|
||||||
|
|
||||||
|
[[X3]]
|
||||||
|
[ATTR]
|
||||||
|
h ñ
|
||||||
|
~~~
|
||||||
|
|
||||||
|
[[X3]]
|
||||||
|
[ATTR]
|
||||||
|
h Ñ
|
||||||
|
~~~
|
||||||
|
unicode tests
|
||||||
|
|
||||||
|
|
||||||
|
h э
|
||||||
|
^^^
|
||||||
|
1
|
||||||
|
|
||||||
|
h Я
|
||||||
|
^^^
|
||||||
|
2
|
||||||
|
|
||||||
|
h ю
|
||||||
|
^^^
|
||||||
|
3
|
||||||
|
|
||||||
|
h Э
|
||||||
|
^^^
|
||||||
|
4
|
||||||
|
|
||||||
|
h я
|
||||||
|
^^^
|
||||||
|
5
|
||||||
|
|
||||||
|
h Ю
|
||||||
|
^^^
|
||||||
|
6
|
||||||
|
|
||||||
|
[[X3]]
|
||||||
|
[ATTR]
|
||||||
|
h node 1
|
||||||
|
~~~~~~~~
|
||||||
|
|
||||||
|
|
||||||
|
h bbbb
|
||||||
|
^^^^^^
|
||||||
|
b
|
||||||
|
|
||||||
|
|
||||||
|
h dddd
|
||||||
|
^^^^^^
|
||||||
|
d1
|
||||||
|
|
||||||
|
|
||||||
|
h DDDD
|
||||||
|
^^^^^^
|
||||||
|
ingorecase test
|
||||||
|
|
||||||
|
|
||||||
|
h aaaa
|
||||||
|
^^^^^^
|
||||||
|
a
|
||||||
|
|
||||||
|
h dddd
|
||||||
|
^^^^^^
|
||||||
|
d2
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
h cccc
|
||||||
|
^^^^^^
|
||||||
|
c
|
||||||
|
|
||||||
|
[[X3]]
|
||||||
|
[ATTR]
|
||||||
|
h z
|
||||||
|
~~~
|
||||||
|
|
||||||
|
[[X2]]
|
||||||
|
h special chars tests
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
[[X3]]
|
||||||
|
[ATTR]
|
||||||
|
h '" /\\/
|
||||||
|
~~~~~~~~~
|
||||||
|
" "" """
|
||||||
|
' '' """
|
||||||
|
\ \\ \\\
|
||||||
|
/ // ///
|
||||||
|
\//\
|
||||||
|
|
||||||
|
[[X3]]
|
||||||
|
[ATTR]
|
||||||
|
h Брожу ли я
|
||||||
|
~~~~~~~~~~~~
|
||||||
|
Брожу. Чего ж не побродить.
|
||||||
|
|
||||||
|
Чебурашка CHeburashka
|
||||||
|
u'\u0427\u0435\u0431\u0443\u0440\u0430\u0448\u043a\u0430'
|
||||||
|
utf-8
|
||||||
|
'\xd0\xa7\xd0\xb5\xd0\xb1\xd1\x83\xd1\x80\xd0\xb0\xd1\x88\xd0\xba\xd0\xb0'
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,249 @@
|
||||||
|
:Voom hashes
|
||||||
|
This is VOoM markup mode test file. Converted from **test_outline.txt**.
|
||||||
|
|
||||||
|
findme findme2
|
||||||
|
|
||||||
|
# 1
|
||||||
|
1 body
|
||||||
|
NEXT LINE IS FOR TESTS -- DO NOT MOVE OR EDIT
|
||||||
|
VO.levels=[1, 1, 2, 2, 1, 1, 2, 2, 3, 4, 3, 4, 5, 6, 7, 2, 1, 2, 1, 2, 2, 3, 3, 4, 5, 5, 3, 2, 3, 2, 3, 2, 1, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 2, 3, 4, 4, 4, 4, 5, 5, 4, 4, 5, 5, 3, 3, 3, 4, 4, 4, 4, 4, 4, 3, 4, 4, 4, 4, 4, 4, 3, 2, 3, 3]
|
||||||
|
|
||||||
|
|
||||||
|
## 1.1
|
||||||
|
1.1 body
|
||||||
|
|
||||||
|
## 1.2
|
||||||
|
1.2 body
|
||||||
|
|
||||||
|
# 2
|
||||||
|
2 body
|
||||||
|
|
||||||
|
# 3
|
||||||
|
3 body
|
||||||
|
|
||||||
|
## 3.1
|
||||||
|
3.1 body
|
||||||
|
|
||||||
|
## 3.2
|
||||||
|
3.2 body
|
||||||
|
|
||||||
|
### 3.2.1
|
||||||
|
3.2.1 body
|
||||||
|
|
||||||
|
#### 3.2.1.1
|
||||||
|
3.2.1.1 body
|
||||||
|
xxxx findme findme
|
||||||
|
|
||||||
|
### 3.2.2
|
||||||
|
3.2.2 body
|
||||||
|
|
||||||
|
#### 3.2.2.1
|
||||||
|
3.2.2.1 body
|
||||||
|
|
||||||
|
##### 3.2.2.1.1
|
||||||
|
3.2.2.1.1 body
|
||||||
|
|
||||||
|
###### 3.2.2.1.2.1
|
||||||
|
3.2.2.1.2.1 body
|
||||||
|
|
||||||
|
####### 3.2.2.1.2.1.1
|
||||||
|
3.2.2.1.2.1.1 body
|
||||||
|
|
||||||
|
## 3.3
|
||||||
|
3.3 body
|
||||||
|
|
||||||
|
# 4
|
||||||
|
4 body
|
||||||
|
|
||||||
|
## 4.1
|
||||||
|
4.1 body findme
|
||||||
|
|
||||||
|
# 5
|
||||||
|
5 body
|
||||||
|
|
||||||
|
## 5.1
|
||||||
|
5.1 body
|
||||||
|
|
||||||
|
## 5.2
|
||||||
|
5.2 body
|
||||||
|
|
||||||
|
### 5.2.1
|
||||||
|
5.2.1 body
|
||||||
|
|
||||||
|
### 5.2.2
|
||||||
|
5.2.2 body
|
||||||
|
|
||||||
|
#### 5.2.2.1
|
||||||
|
5.2.2.1 body
|
||||||
|
|
||||||
|
##### 5.2.2.1.1
|
||||||
|
5.2.2.1.1 body
|
||||||
|
|
||||||
|
##### 5.2.2.1.2
|
||||||
|
5.2.2.1.2 body
|
||||||
|
|
||||||
|
|
||||||
|
### 5.2.3
|
||||||
|
5.2.3 body
|
||||||
|
|
||||||
|
## AA
|
||||||
|
a a a a
|
||||||
|
|
||||||
|
### AA.1
|
||||||
|
a1 a1 a1 a1
|
||||||
|
|
||||||
|
## BB
|
||||||
|
b b b b
|
||||||
|
|
||||||
|
### BB.1
|
||||||
|
b1 b1 b1 b1 b1
|
||||||
|
|
||||||
|
## 5.3
|
||||||
|
5.3 body
|
||||||
|
findme
|
||||||
|
|
||||||
|
# tests
|
||||||
|
|
||||||
|
## syntax tests
|
||||||
|
Since v2.1 comment chars before foldmarker are stripped according to filetype.
|
||||||
|
Some Body filetypes have their own Tree syntax hi.
|
||||||
|
|
||||||
|
|
||||||
|
### //---TODO comment--- //
|
||||||
|
|
||||||
|
### "---comment--- "
|
||||||
|
echo 'vim ok'
|
||||||
|
|
||||||
|
### #---comment--- #
|
||||||
|
print 'py ok'
|
||||||
|
|
||||||
|
### %---comment--- %
|
||||||
|
|
||||||
|
### /*---comment--- /*
|
||||||
|
|
||||||
|
### <!-- Comment
|
||||||
|
ft=html,xml
|
||||||
|
|
||||||
|
### html head <!
|
||||||
|
|
||||||
|
### /organizer node/
|
||||||
|
|
||||||
|
### !warning mark
|
||||||
|
|
||||||
|
## Voomgrep tests
|
||||||
|
:Voomg Spam and ham not bacon
|
||||||
|
:Voomg Spam and\ ham not\ bacon
|
||||||
|
:Voomg Spam and\\ ham not\\ bacon
|
||||||
|
\Spam// ' "
|
||||||
|
|
||||||
|
### n44 breakfast
|
||||||
|
eggs
|
||||||
|
bacon
|
||||||
|
|
||||||
|
### n45 lunch
|
||||||
|
Spam Spam Spam Spam Spam Spam Spam Spam Spam
|
||||||
|
Spam Spam Spam Spam Spam Spam Spam Spam Spam
|
||||||
|
Spam Spam Spam Spam Spam Spam Spam Spam Spam
|
||||||
|
ham
|
||||||
|
|
||||||
|
### n46 dinner
|
||||||
|
eggs
|
||||||
|
Spam
|
||||||
|
ham
|
||||||
|
|
||||||
|
### n47 snack
|
||||||
|
bacon
|
||||||
|
spam
|
||||||
|
HAM
|
||||||
|
beef
|
||||||
|
|
||||||
|
## sort tests
|
||||||
|
|
||||||
|
### node 2
|
||||||
|
|
||||||
|
#### dddd
|
||||||
|
d1
|
||||||
|
|
||||||
|
#### eeee
|
||||||
|
|
||||||
|
#### dddd
|
||||||
|
d2
|
||||||
|
|
||||||
|
|
||||||
|
#### bbbb
|
||||||
|
b
|
||||||
|
|
||||||
|
##### b_yyy
|
||||||
|
|
||||||
|
##### b_xxx
|
||||||
|
|
||||||
|
#### cccc
|
||||||
|
c
|
||||||
|
|
||||||
|
#### aaaa
|
||||||
|
a
|
||||||
|
##### a_nnn
|
||||||
|
|
||||||
|
##### a_mmm
|
||||||
|
|
||||||
|
### node 22
|
||||||
|
|
||||||
|
|
||||||
|
### ñ
|
||||||
|
|
||||||
|
### Ñ
|
||||||
|
unicode tests
|
||||||
|
|
||||||
|
#### э
|
||||||
|
1
|
||||||
|
#### Я
|
||||||
|
2
|
||||||
|
#### ю
|
||||||
|
3
|
||||||
|
#### Э
|
||||||
|
4
|
||||||
|
#### я
|
||||||
|
5
|
||||||
|
#### Ю
|
||||||
|
6
|
||||||
|
|
||||||
|
### node 1
|
||||||
|
|
||||||
|
#### bbbb
|
||||||
|
b
|
||||||
|
|
||||||
|
#### dddd
|
||||||
|
d1
|
||||||
|
|
||||||
|
#### DDDD
|
||||||
|
ingorecase test
|
||||||
|
|
||||||
|
#### aaaa
|
||||||
|
a
|
||||||
|
#### dddd
|
||||||
|
d2
|
||||||
|
|
||||||
|
|
||||||
|
#### cccc
|
||||||
|
c
|
||||||
|
|
||||||
|
### z
|
||||||
|
|
||||||
|
## special chars tests
|
||||||
|
|
||||||
|
### '" /\\/
|
||||||
|
" "" """
|
||||||
|
' '' """
|
||||||
|
\ \\ \\\
|
||||||
|
/ // ///
|
||||||
|
\//\
|
||||||
|
|
||||||
|
### Брожу ли я
|
||||||
|
Брожу. Чего ж не побродить.
|
||||||
|
|
||||||
|
Чебурашка CHeburashka
|
||||||
|
u'\u0427\u0435\u0431\u0443\u0440\u0430\u0448\u043a\u0430'
|
||||||
|
utf-8
|
||||||
|
'\xd0\xa7\xd0\xb5\xd0\xb1\xd1\x83\xd1\x80\xd0\xb0\xd1\x88\xd0\xba\xd0\xb0'
|
||||||
|
|
||||||
|
|
249
vim_plugins_src/VOoM-4.3/VOoM-4.3/voom_samples/test_outline.html
Normal file
249
vim_plugins_src/VOoM-4.3/VOoM-4.3/voom_samples/test_outline.html
Normal file
|
@ -0,0 +1,249 @@
|
||||||
|
:Voom html
|
||||||
|
This is VOoM markup mode test file. Converted from **test_outline.txt**.
|
||||||
|
|
||||||
|
findme findme2
|
||||||
|
|
||||||
|
<h1>1</h1> <!--{{{1-->
|
||||||
|
1 body
|
||||||
|
NEXT LINE IS FOR TESTS -- DO NOT MOVE OR EDIT
|
||||||
|
VO.levels=[1, 1, 2, 2, 1, 1, 2, 2, 3, 4, 3, 4, 5, 6, 7, 2, 1, 2, 1, 2, 2, 3, 3, 4, 5, 5, 3, 2, 3, 2, 3, 2, 1, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 2, 3, 4, 4, 4, 4, 5, 5, 4, 4, 5, 5, 3, 3, 3, 4, 4, 4, 4, 4, 4, 3, 4, 4, 4, 4, 4, 4, 3, 2, 3, 3]
|
||||||
|
|
||||||
|
|
||||||
|
<h2>1.1</h2> <!--{{{2-->
|
||||||
|
1.1 body
|
||||||
|
|
||||||
|
<h2>1.2</h2> <!--{{{2-->
|
||||||
|
1.2 body
|
||||||
|
|
||||||
|
<h1>2</h1> <!--{{{1-->
|
||||||
|
2 body
|
||||||
|
|
||||||
|
<h1>3</h1> <!--{{{1o=-->
|
||||||
|
3 body
|
||||||
|
|
||||||
|
<h2>3.1</h2> <!--{{{2x-->
|
||||||
|
3.1 body
|
||||||
|
|
||||||
|
<h2>3.2</h2> <!--{{{2x-->
|
||||||
|
3.2 body
|
||||||
|
|
||||||
|
<h3>3.2.1</h3> <!--{{{3-->
|
||||||
|
3.2.1 body
|
||||||
|
|
||||||
|
<h4>3.2.1.1</h4> <!--{{{4-->
|
||||||
|
3.2.1.1 body
|
||||||
|
xxxx findme findme
|
||||||
|
|
||||||
|
<h3>3.2.2</h3> <!--{{{3-->
|
||||||
|
3.2.2 body
|
||||||
|
|
||||||
|
<h4>3.2.2.1</h4> <!--{{{4x-->
|
||||||
|
3.2.2.1 body
|
||||||
|
|
||||||
|
<h5>3.2.2.1.1</h5> <!--{{{5x-->
|
||||||
|
3.2.2.1.1 body
|
||||||
|
|
||||||
|
<h6>3.2.2.1.2.1</h6> <!--{{{6-->
|
||||||
|
3.2.2.1.2.1 body
|
||||||
|
|
||||||
|
<h7>3.2.2.1.2.1.1</h7> <!--{{{7x-->
|
||||||
|
3.2.2.1.2.1.1 body
|
||||||
|
|
||||||
|
<h2>3.3</h2> <!--{{{2-->
|
||||||
|
3.3 body
|
||||||
|
|
||||||
|
<h1>4</h1> <!--{{{1-->
|
||||||
|
4 body
|
||||||
|
|
||||||
|
<h2>4.1</h2> <!--{{{2-->
|
||||||
|
4.1 body findme
|
||||||
|
|
||||||
|
<h1>5</h1> <!--{{{1o-->
|
||||||
|
5 body
|
||||||
|
|
||||||
|
<h2>5.1</h2> <!--{{{2-->
|
||||||
|
5.1 body
|
||||||
|
|
||||||
|
<h2>5.2</h2> <!--{{{2o-->
|
||||||
|
5.2 body
|
||||||
|
|
||||||
|
<h3>5.2.1</h3> <!--{{{3-->
|
||||||
|
5.2.1 body
|
||||||
|
|
||||||
|
<h3>5.2.2</h3> <!--{{{3-->
|
||||||
|
5.2.2 body
|
||||||
|
|
||||||
|
<h4>5.2.2.1</h4> <!--{{{4o-->
|
||||||
|
5.2.2.1 body
|
||||||
|
|
||||||
|
<h5>5.2.2.1.1</h5> <!--{{{5-->
|
||||||
|
5.2.2.1.1 body
|
||||||
|
|
||||||
|
<h5>5.2.2.1.2</h5> <!--{{{5-->
|
||||||
|
5.2.2.1.2 body
|
||||||
|
|
||||||
|
|
||||||
|
<h3>5.2.3</h3> <!--{{{3-->
|
||||||
|
5.2.3 body
|
||||||
|
|
||||||
|
<h2>AA</h2> <!--{{{2-->
|
||||||
|
a a a a
|
||||||
|
|
||||||
|
<h3>AA.1</h3> <!--{{{3-->
|
||||||
|
a1 a1 a1 a1
|
||||||
|
|
||||||
|
<h2>BB</h2> <!--{{{2-->
|
||||||
|
b b b b
|
||||||
|
|
||||||
|
<h3>BB.1</h3> <!--{{{3-->
|
||||||
|
b1 b1 b1 b1 b1
|
||||||
|
|
||||||
|
<h2>5.3</h2> <!--{{{2-->
|
||||||
|
5.3 body
|
||||||
|
findme
|
||||||
|
|
||||||
|
<h1>tests</h1> <!--{{{1o-->
|
||||||
|
|
||||||
|
<h2>syntax tests</h2> <!--{{{2-->
|
||||||
|
Since v2.1 comment chars before foldmarker are stripped according to filetype.
|
||||||
|
Some Body filetypes have their own Tree syntax hi.
|
||||||
|
|
||||||
|
|
||||||
|
<h3>//---TODO comment--- //</h3> <!--{{{3-->
|
||||||
|
|
||||||
|
<h3>"---comment--- "</h3> <!--{{{3-->
|
||||||
|
echo 'vim ok'
|
||||||
|
|
||||||
|
<h3>#---comment--- #</h3> <!--{{{3-->
|
||||||
|
print 'py ok'
|
||||||
|
|
||||||
|
<h3>%---comment--- %</h3> <!--{{{3-->
|
||||||
|
|
||||||
|
<h3>/*---comment--- /*</h3> <!--{{{3*/-->
|
||||||
|
|
||||||
|
<h3><!-- Comment</h3> <!--{{{3 -->-->
|
||||||
|
ft=html,xml
|
||||||
|
|
||||||
|
<h3>html head <!</h3> <!--{{{3-->-->
|
||||||
|
|
||||||
|
<h3>/organizer node/</h3> <!--{{{3-->
|
||||||
|
|
||||||
|
<h3>!warning mark</h3> <!--{{{3-->
|
||||||
|
|
||||||
|
<h2>Voomgrep tests</h2> <!--{{{2-->
|
||||||
|
:Voomg Spam and ham not bacon
|
||||||
|
:Voomg Spam and\ ham not\ bacon
|
||||||
|
:Voomg Spam and\\ ham not\\ bacon
|
||||||
|
\Spam// ' "
|
||||||
|
|
||||||
|
<h3>n44 breakfast</h3> <!--{{{3-->
|
||||||
|
eggs
|
||||||
|
bacon
|
||||||
|
|
||||||
|
<h3>n45 lunch</h3> <!--{{{3-->
|
||||||
|
Spam Spam Spam Spam Spam Spam Spam Spam Spam
|
||||||
|
Spam Spam Spam Spam Spam Spam Spam Spam Spam
|
||||||
|
Spam Spam Spam Spam Spam Spam Spam Spam Spam
|
||||||
|
ham
|
||||||
|
|
||||||
|
<h3>n46 dinner</h3> <!--{{{3-->
|
||||||
|
eggs
|
||||||
|
Spam
|
||||||
|
ham
|
||||||
|
|
||||||
|
<h3>n47 snack</h3> <!--{{{3-->
|
||||||
|
bacon
|
||||||
|
spam
|
||||||
|
HAM
|
||||||
|
beef
|
||||||
|
|
||||||
|
<h2>sort tests</h2> <!--{{{2-->
|
||||||
|
|
||||||
|
<h3>node 2</h3> <!--{{{3-->
|
||||||
|
|
||||||
|
<h4>dddd</h4> <!--{{{4x-->
|
||||||
|
d1
|
||||||
|
|
||||||
|
<h4>eeee</h4> <!--{{{4-->
|
||||||
|
|
||||||
|
<h4>dddd</h4> <!--{{{4-->
|
||||||
|
d2
|
||||||
|
|
||||||
|
|
||||||
|
<h4>bbbb</h4> <!--{{{4o-->
|
||||||
|
b
|
||||||
|
|
||||||
|
<h5>b_yyy</h5> <!--{{{5-->
|
||||||
|
|
||||||
|
<h5>b_xxx</h5> <!--{{{5-->
|
||||||
|
|
||||||
|
<h4>cccc</h4> <!--{{{4-->
|
||||||
|
c
|
||||||
|
|
||||||
|
<h4>aaaa</h4> <!--{{{4-->
|
||||||
|
a
|
||||||
|
<h5>a_nnn</h5> <!--{{{5-->
|
||||||
|
|
||||||
|
<h5>a_mmm</h5> <!--{{{5-->
|
||||||
|
|
||||||
|
<h3>node 22</h3> <!--{{{3-->
|
||||||
|
|
||||||
|
|
||||||
|
<h3>ñ</h3> <!--{{{3-->
|
||||||
|
|
||||||
|
<h3>Ñ</h3> <!--{{{3-->
|
||||||
|
unicode tests
|
||||||
|
|
||||||
|
<h4>э</h4> <!--{{{4-->
|
||||||
|
1
|
||||||
|
<h4>Я</h4> <!--{{{4-->
|
||||||
|
2
|
||||||
|
<h4>ю</h4> <!--{{{4-->
|
||||||
|
3
|
||||||
|
<h4>Э</h4> <!--{{{4-->
|
||||||
|
4
|
||||||
|
<h4>я</h4> <!--{{{4-->
|
||||||
|
5
|
||||||
|
<h4>Ю</h4> <!--{{{4-->
|
||||||
|
6
|
||||||
|
|
||||||
|
<h3>node 1</h3> <!--{{{3-->
|
||||||
|
|
||||||
|
<h4>bbbb</h4> <!--{{{4-->
|
||||||
|
b
|
||||||
|
|
||||||
|
<h4>dddd</h4> <!--{{{4-->
|
||||||
|
d1
|
||||||
|
|
||||||
|
<h4>DDDD</h4> <!--{{{4-->
|
||||||
|
ingorecase test
|
||||||
|
|
||||||
|
<h4>aaaa</h4> <!--{{{4-->
|
||||||
|
a
|
||||||
|
<h4>dddd</h4> <!--{{{4-->
|
||||||
|
d2
|
||||||
|
|
||||||
|
|
||||||
|
<h4>cccc</h4> <!--{{{4-->
|
||||||
|
c
|
||||||
|
|
||||||
|
<h3>z</h3> <!--{{{3-->
|
||||||
|
|
||||||
|
<h2>special chars tests</h2> <!--{{{2-->
|
||||||
|
|
||||||
|
<h3>'" /\\/</h3> <!--{{{3 '" /\\/-->
|
||||||
|
" "" """
|
||||||
|
' '' """
|
||||||
|
\ \\ \\\
|
||||||
|
/ // ///
|
||||||
|
\//\
|
||||||
|
|
||||||
|
<h3>Брожу ли я</h3> <!--{{{3 вдоль улиц шумных? (utf-8)-->
|
||||||
|
Брожу. Чего ж не побродить.
|
||||||
|
|
||||||
|
Чебурашка CHeburashka
|
||||||
|
u'\u0427\u0435\u0431\u0443\u0440\u0430\u0448\u043a\u0430'
|
||||||
|
utf-8
|
||||||
|
'\xd0\xa7\xd0\xb5\xd0\xb1\xd1\x83\xd1\x80\xd0\xb0\xd1\x88\xd0\xba\xd0\xb0'
|
||||||
|
|
||||||
|
|
270
vim_plugins_src/VOoM-4.3/VOoM-4.3/voom_samples/test_outline.mkd
Normal file
270
vim_plugins_src/VOoM-4.3/VOoM-4.3/voom_samples/test_outline.mkd
Normal file
|
@ -0,0 +1,270 @@
|
||||||
|
:Voom markdown
|
||||||
|
This is VOoM markup mode test file. Converted from **test_outline.txt**.
|
||||||
|
|
||||||
|
findme findme2
|
||||||
|
|
||||||
|
h1
|
||||||
|
==
|
||||||
|
1 body
|
||||||
|
NEXT LINE IS FOR TESTS -- DO NOT MOVE OR EDIT
|
||||||
|
VO.levels=[1, 1, 2, 2, 1, 1, 2, 2, 3, 4, 3, 4, 5, 6, 7, 2, 1, 2, 1, 2, 2, 3, 3, 4, 5, 5, 3, 2, 3, 2, 3, 2, 1, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 2, 3, 4, 4, 4, 4, 5, 5, 4, 4, 5, 5, 3, 3, 3, 4, 4, 4, 4, 4, 4, 3, 4, 4, 4, 4, 4, 4, 3, 2, 3, 3]
|
||||||
|
|
||||||
|
|
||||||
|
h1.1
|
||||||
|
----
|
||||||
|
1.1 body
|
||||||
|
|
||||||
|
h1.2
|
||||||
|
----
|
||||||
|
1.2 body
|
||||||
|
|
||||||
|
h2
|
||||||
|
==
|
||||||
|
2 body
|
||||||
|
|
||||||
|
h3
|
||||||
|
==
|
||||||
|
3 body
|
||||||
|
|
||||||
|
h3.1
|
||||||
|
----
|
||||||
|
3.1 body
|
||||||
|
|
||||||
|
h3.2
|
||||||
|
----
|
||||||
|
3.2 body
|
||||||
|
|
||||||
|
### h3.2.1 ###
|
||||||
|
3.2.1 body
|
||||||
|
|
||||||
|
#### h3.2.1.1 ####
|
||||||
|
3.2.1.1 body
|
||||||
|
xxxx findme findme
|
||||||
|
|
||||||
|
### h3.2.2 ###
|
||||||
|
3.2.2 body
|
||||||
|
|
||||||
|
#### h3.2.2.1 ####
|
||||||
|
3.2.2.1 body
|
||||||
|
|
||||||
|
##### h3.2.2.1.1 #####
|
||||||
|
3.2.2.1.1 body
|
||||||
|
|
||||||
|
###### h3.2.2.1.2.1 ######
|
||||||
|
3.2.2.1.2.1 body
|
||||||
|
|
||||||
|
####### h3.2.2.1.2.1.1 #######
|
||||||
|
3.2.2.1.2.1.1 body
|
||||||
|
|
||||||
|
h3.3
|
||||||
|
----
|
||||||
|
3.3 body
|
||||||
|
|
||||||
|
h4
|
||||||
|
==
|
||||||
|
4 body
|
||||||
|
|
||||||
|
h4.1
|
||||||
|
----
|
||||||
|
4.1 body findme
|
||||||
|
|
||||||
|
h5
|
||||||
|
==
|
||||||
|
5 body
|
||||||
|
|
||||||
|
h5.1
|
||||||
|
----
|
||||||
|
5.1 body
|
||||||
|
|
||||||
|
h5.2
|
||||||
|
----
|
||||||
|
5.2 body
|
||||||
|
|
||||||
|
### h5.2.1 ###
|
||||||
|
5.2.1 body
|
||||||
|
|
||||||
|
### h5.2.2 ###
|
||||||
|
5.2.2 body
|
||||||
|
|
||||||
|
#### h5.2.2.1 ####
|
||||||
|
5.2.2.1 body
|
||||||
|
|
||||||
|
##### h5.2.2.1.1 #####
|
||||||
|
5.2.2.1.1 body
|
||||||
|
|
||||||
|
##### h5.2.2.1.2 #####
|
||||||
|
5.2.2.1.2 body
|
||||||
|
|
||||||
|
|
||||||
|
### h5.2.3 ###
|
||||||
|
5.2.3 body
|
||||||
|
|
||||||
|
hAA
|
||||||
|
---
|
||||||
|
a a a a
|
||||||
|
|
||||||
|
### hAA.1 ###
|
||||||
|
a1 a1 a1 a1
|
||||||
|
|
||||||
|
hBB
|
||||||
|
---
|
||||||
|
b b b b
|
||||||
|
|
||||||
|
### hBB.1 ###
|
||||||
|
b1 b1 b1 b1 b1
|
||||||
|
|
||||||
|
h5.3
|
||||||
|
----
|
||||||
|
5.3 body
|
||||||
|
findme
|
||||||
|
|
||||||
|
htests
|
||||||
|
======
|
||||||
|
|
||||||
|
hsyntax tests
|
||||||
|
-------------
|
||||||
|
Since v2.1 comment chars before foldmarker are stripped according to filetype.
|
||||||
|
Some Body filetypes have their own Tree syntax hi.
|
||||||
|
|
||||||
|
|
||||||
|
### h//---TODO comment--- // ###
|
||||||
|
|
||||||
|
### h"---comment--- " ###
|
||||||
|
echo 'vim ok'
|
||||||
|
|
||||||
|
### h#---comment--- # ###
|
||||||
|
print 'py ok'
|
||||||
|
|
||||||
|
### h%---comment--- % ###
|
||||||
|
|
||||||
|
### h/*---comment--- /* ###
|
||||||
|
|
||||||
|
### h<!-- Comment ###
|
||||||
|
ft=html,xml
|
||||||
|
|
||||||
|
### hhtml head <! ###
|
||||||
|
|
||||||
|
### h/organizer node/ ###
|
||||||
|
|
||||||
|
### h!warning mark ###
|
||||||
|
|
||||||
|
hVoomgrep tests
|
||||||
|
---------------
|
||||||
|
:Voomg Spam and ham not bacon
|
||||||
|
:Voomg Spam and\ ham not\ bacon
|
||||||
|
:Voomg Spam and\\ ham not\\ bacon
|
||||||
|
\Spam// ' "
|
||||||
|
|
||||||
|
### hn44 breakfast ###
|
||||||
|
eggs
|
||||||
|
bacon
|
||||||
|
|
||||||
|
### hn45 lunch ###
|
||||||
|
Spam Spam Spam Spam Spam Spam Spam Spam Spam
|
||||||
|
Spam Spam Spam Spam Spam Spam Spam Spam Spam
|
||||||
|
Spam Spam Spam Spam Spam Spam Spam Spam Spam
|
||||||
|
ham
|
||||||
|
|
||||||
|
### hn46 dinner ###
|
||||||
|
eggs
|
||||||
|
Spam
|
||||||
|
ham
|
||||||
|
|
||||||
|
### hn47 snack ###
|
||||||
|
bacon
|
||||||
|
spam
|
||||||
|
HAM
|
||||||
|
beef
|
||||||
|
|
||||||
|
hsort tests
|
||||||
|
-----------
|
||||||
|
|
||||||
|
### hnode 2 ###
|
||||||
|
|
||||||
|
#### hdddd ####
|
||||||
|
d1
|
||||||
|
|
||||||
|
#### heeee ####
|
||||||
|
|
||||||
|
#### hdddd ####
|
||||||
|
d2
|
||||||
|
|
||||||
|
|
||||||
|
#### hbbbb ####
|
||||||
|
b
|
||||||
|
|
||||||
|
##### hb_yyy #####
|
||||||
|
|
||||||
|
##### hb_xxx #####
|
||||||
|
|
||||||
|
#### hcccc ####
|
||||||
|
c
|
||||||
|
|
||||||
|
#### haaaa ####
|
||||||
|
a
|
||||||
|
##### ha_nnn #####
|
||||||
|
|
||||||
|
##### ha_mmm #####
|
||||||
|
|
||||||
|
### hnode 22 ###
|
||||||
|
|
||||||
|
|
||||||
|
### hñ ###
|
||||||
|
|
||||||
|
### hÑ ###
|
||||||
|
unicode tests
|
||||||
|
|
||||||
|
#### hэ ####
|
||||||
|
1
|
||||||
|
#### hЯ ####
|
||||||
|
2
|
||||||
|
#### hю ####
|
||||||
|
3
|
||||||
|
#### hЭ ####
|
||||||
|
4
|
||||||
|
#### hя ####
|
||||||
|
5
|
||||||
|
#### hЮ ####
|
||||||
|
6
|
||||||
|
|
||||||
|
### hnode 1 ###
|
||||||
|
|
||||||
|
#### hbbbb ####
|
||||||
|
b
|
||||||
|
|
||||||
|
#### hdddd ####
|
||||||
|
d1
|
||||||
|
|
||||||
|
#### hDDDD ####
|
||||||
|
ingorecase test
|
||||||
|
|
||||||
|
#### haaaa ####
|
||||||
|
a
|
||||||
|
#### hdddd ####
|
||||||
|
d2
|
||||||
|
|
||||||
|
|
||||||
|
#### hcccc ####
|
||||||
|
c
|
||||||
|
|
||||||
|
### hz ###
|
||||||
|
|
||||||
|
hspecial chars tests
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
### h'" /\\/ ###
|
||||||
|
" "" """
|
||||||
|
' '' """
|
||||||
|
\ \\ \\\
|
||||||
|
/ // ///
|
||||||
|
\//\
|
||||||
|
|
||||||
|
### hБрожу ли я ###
|
||||||
|
Брожу. Чего ж не побродить.
|
||||||
|
|
||||||
|
Чебурашка CHeburashka
|
||||||
|
u'\u0427\u0435\u0431\u0443\u0440\u0430\u0448\u043a\u0430'
|
||||||
|
utf-8
|
||||||
|
'\xd0\xa7\xd0\xb5\xd0\xb1\xd1\x83\xd1\x80\xd0\xb0\xd1\x88\xd0\xba\xd0\xb0'
|
||||||
|
|
||||||
|
|
249
vim_plugins_src/VOoM-4.3/VOoM-4.3/voom_samples/test_outline.org
Normal file
249
vim_plugins_src/VOoM-4.3/VOoM-4.3/voom_samples/test_outline.org
Normal file
|
@ -0,0 +1,249 @@
|
||||||
|
:Voom org
|
||||||
|
This is VOoM markup mode test file. Converted from **test_outline.txt**.
|
||||||
|
|
||||||
|
findme findme2
|
||||||
|
|
||||||
|
* 1
|
||||||
|
1 body
|
||||||
|
NEXT LINE IS FOR TESTS -- DO NOT MOVE OR EDIT
|
||||||
|
VO.levels=[1, 1, 2, 2, 1, 1, 2, 2, 3, 4, 3, 4, 5, 6, 7, 2, 1, 2, 1, 2, 2, 3, 3, 4, 5, 5, 3, 2, 3, 2, 3, 2, 1, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 2, 3, 4, 4, 4, 4, 5, 5, 4, 4, 5, 5, 3, 3, 3, 4, 4, 4, 4, 4, 4, 3, 4, 4, 4, 4, 4, 4, 3, 2, 3, 3]
|
||||||
|
|
||||||
|
|
||||||
|
** 1.1
|
||||||
|
1.1 body
|
||||||
|
|
||||||
|
** 1.2
|
||||||
|
1.2 body
|
||||||
|
|
||||||
|
* 2
|
||||||
|
2 body
|
||||||
|
|
||||||
|
* 3
|
||||||
|
3 body
|
||||||
|
|
||||||
|
** 3.1
|
||||||
|
3.1 body
|
||||||
|
|
||||||
|
** 3.2
|
||||||
|
3.2 body
|
||||||
|
|
||||||
|
*** 3.2.1
|
||||||
|
3.2.1 body
|
||||||
|
|
||||||
|
**** 3.2.1.1
|
||||||
|
3.2.1.1 body
|
||||||
|
xxxx findme findme
|
||||||
|
|
||||||
|
*** 3.2.2
|
||||||
|
3.2.2 body
|
||||||
|
|
||||||
|
**** 3.2.2.1
|
||||||
|
3.2.2.1 body
|
||||||
|
|
||||||
|
***** 3.2.2.1.1
|
||||||
|
3.2.2.1.1 body
|
||||||
|
|
||||||
|
****** 3.2.2.1.2.1
|
||||||
|
3.2.2.1.2.1 body
|
||||||
|
|
||||||
|
******* 3.2.2.1.2.1.1
|
||||||
|
3.2.2.1.2.1.1 body
|
||||||
|
|
||||||
|
** 3.3
|
||||||
|
3.3 body
|
||||||
|
|
||||||
|
* 4
|
||||||
|
4 body
|
||||||
|
|
||||||
|
** 4.1
|
||||||
|
4.1 body findme
|
||||||
|
|
||||||
|
* 5
|
||||||
|
5 body
|
||||||
|
|
||||||
|
** 5.1
|
||||||
|
5.1 body
|
||||||
|
|
||||||
|
** 5.2
|
||||||
|
5.2 body
|
||||||
|
|
||||||
|
*** 5.2.1
|
||||||
|
5.2.1 body
|
||||||
|
|
||||||
|
*** 5.2.2
|
||||||
|
5.2.2 body
|
||||||
|
|
||||||
|
**** 5.2.2.1
|
||||||
|
5.2.2.1 body
|
||||||
|
|
||||||
|
***** 5.2.2.1.1
|
||||||
|
5.2.2.1.1 body
|
||||||
|
|
||||||
|
***** 5.2.2.1.2
|
||||||
|
5.2.2.1.2 body
|
||||||
|
|
||||||
|
|
||||||
|
*** 5.2.3
|
||||||
|
5.2.3 body
|
||||||
|
|
||||||
|
** AA
|
||||||
|
a a a a
|
||||||
|
|
||||||
|
*** AA.1
|
||||||
|
a1 a1 a1 a1
|
||||||
|
|
||||||
|
** BB
|
||||||
|
b b b b
|
||||||
|
|
||||||
|
*** BB.1
|
||||||
|
b1 b1 b1 b1 b1
|
||||||
|
|
||||||
|
** 5.3
|
||||||
|
5.3 body
|
||||||
|
findme
|
||||||
|
|
||||||
|
* tests
|
||||||
|
|
||||||
|
** syntax tests
|
||||||
|
Since v2.1 comment chars before foldmarker are stripped according to filetype.
|
||||||
|
Some Body filetypes have their own Tree syntax hi.
|
||||||
|
|
||||||
|
|
||||||
|
*** //---TODO comment--- //
|
||||||
|
|
||||||
|
*** "---comment--- "
|
||||||
|
echo 'vim ok'
|
||||||
|
|
||||||
|
*** #---comment--- #
|
||||||
|
print 'py ok'
|
||||||
|
|
||||||
|
*** %---comment--- %
|
||||||
|
|
||||||
|
*** /*---comment--- /*
|
||||||
|
|
||||||
|
*** <!-- Comment
|
||||||
|
ft=html,xml
|
||||||
|
|
||||||
|
*** html head <!
|
||||||
|
|
||||||
|
*** /organizer node/
|
||||||
|
|
||||||
|
*** !warning mark
|
||||||
|
|
||||||
|
** Voomgrep tests
|
||||||
|
:Voomg Spam and ham not bacon
|
||||||
|
:Voomg Spam and\ ham not\ bacon
|
||||||
|
:Voomg Spam and\\ ham not\\ bacon
|
||||||
|
\Spam// ' "
|
||||||
|
|
||||||
|
*** n44 breakfast
|
||||||
|
eggs
|
||||||
|
bacon
|
||||||
|
|
||||||
|
*** n45 lunch
|
||||||
|
Spam Spam Spam Spam Spam Spam Spam Spam Spam
|
||||||
|
Spam Spam Spam Spam Spam Spam Spam Spam Spam
|
||||||
|
Spam Spam Spam Spam Spam Spam Spam Spam Spam
|
||||||
|
ham
|
||||||
|
|
||||||
|
*** n46 dinner
|
||||||
|
eggs
|
||||||
|
Spam
|
||||||
|
ham
|
||||||
|
|
||||||
|
*** n47 snack
|
||||||
|
bacon
|
||||||
|
spam
|
||||||
|
HAM
|
||||||
|
beef
|
||||||
|
|
||||||
|
** sort tests
|
||||||
|
|
||||||
|
*** node 2
|
||||||
|
|
||||||
|
**** dddd
|
||||||
|
d1
|
||||||
|
|
||||||
|
**** eeee
|
||||||
|
|
||||||
|
**** dddd
|
||||||
|
d2
|
||||||
|
|
||||||
|
|
||||||
|
**** bbbb
|
||||||
|
b
|
||||||
|
|
||||||
|
***** b_yyy
|
||||||
|
|
||||||
|
***** b_xxx
|
||||||
|
|
||||||
|
**** cccc
|
||||||
|
c
|
||||||
|
|
||||||
|
**** aaaa
|
||||||
|
a
|
||||||
|
***** a_nnn
|
||||||
|
|
||||||
|
***** a_mmm
|
||||||
|
|
||||||
|
*** node 22
|
||||||
|
|
||||||
|
|
||||||
|
*** ñ
|
||||||
|
|
||||||
|
*** Ñ
|
||||||
|
unicode tests
|
||||||
|
|
||||||
|
**** э
|
||||||
|
1
|
||||||
|
**** Я
|
||||||
|
2
|
||||||
|
**** ю
|
||||||
|
3
|
||||||
|
**** Э
|
||||||
|
4
|
||||||
|
**** я
|
||||||
|
5
|
||||||
|
**** Ю
|
||||||
|
6
|
||||||
|
|
||||||
|
*** node 1
|
||||||
|
|
||||||
|
**** bbbb
|
||||||
|
b
|
||||||
|
|
||||||
|
**** dddd
|
||||||
|
d1
|
||||||
|
|
||||||
|
**** DDDD
|
||||||
|
ingorecase test
|
||||||
|
|
||||||
|
**** aaaa
|
||||||
|
a
|
||||||
|
**** dddd
|
||||||
|
d2
|
||||||
|
|
||||||
|
|
||||||
|
**** cccc
|
||||||
|
c
|
||||||
|
|
||||||
|
*** z
|
||||||
|
|
||||||
|
** special chars tests
|
||||||
|
|
||||||
|
*** '" /\\/
|
||||||
|
" "" """
|
||||||
|
' '' """
|
||||||
|
\ \\ \\\
|
||||||
|
/ // ///
|
||||||
|
\//\
|
||||||
|
|
||||||
|
*** Брожу ли я
|
||||||
|
Брожу. Чего ж не побродить.
|
||||||
|
|
||||||
|
Чебурашка CHeburashka
|
||||||
|
u'\u0427\u0435\u0431\u0443\u0440\u0430\u0448\u043a\u0430'
|
||||||
|
utf-8
|
||||||
|
'\xd0\xa7\xd0\xb5\xd0\xb1\xd1\x83\xd1\x80\xd0\xb0\xd1\x88\xd0\xba\xd0\xb0'
|
||||||
|
|
||||||
|
|
249
vim_plugins_src/VOoM-4.3/VOoM-4.3/voom_samples/test_outline.otl
Normal file
249
vim_plugins_src/VOoM-4.3/VOoM-4.3/voom_samples/test_outline.otl
Normal file
|
@ -0,0 +1,249 @@
|
||||||
|
| :Voom thevimoutliner
|
||||||
|
| This is VOoM markup mode test file. Converted from **test_outline.txt**.
|
||||||
|
|
||||||
|
| findme findme2
|
||||||
|
|
||||||
|
1
|
||||||
|
| 1 body
|
||||||
|
| NEXT LINE IS FOR TESTS -- DO NOT MOVE OR EDIT
|
||||||
|
| VO.levels=[1, 1, 2, 2, 1, 1, 2, 2, 3, 4, 3, 4, 5, 6, 7, 2, 1, 2, 1, 2, 2, 3, 3, 4, 5, 5, 3, 2, 3, 2, 3, 2, 1, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 2, 3, 4, 4, 4, 4, 5, 5, 4, 4, 5, 5, 3, 3, 3, 4, 4, 4, 4, 4, 4, 3, 4, 4, 4, 4, 4, 4, 3, 2, 3, 3]
|
||||||
|
|
||||||
|
|
||||||
|
1.1
|
||||||
|
| 1.1 body
|
||||||
|
|
||||||
|
1.2
|
||||||
|
| 1.2 body
|
||||||
|
|
||||||
|
2
|
||||||
|
| 2 body
|
||||||
|
|
||||||
|
3
|
||||||
|
| 3 body
|
||||||
|
|
||||||
|
3.1
|
||||||
|
| 3.1 body
|
||||||
|
|
||||||
|
3.2
|
||||||
|
| 3.2 body
|
||||||
|
|
||||||
|
3.2.1
|
||||||
|
| 3.2.1 body
|
||||||
|
|
||||||
|
3.2.1.1
|
||||||
|
| 3.2.1.1 body
|
||||||
|
| xxxx findme findme
|
||||||
|
|
||||||
|
3.2.2
|
||||||
|
| 3.2.2 body
|
||||||
|
|
||||||
|
3.2.2.1
|
||||||
|
| 3.2.2.1 body
|
||||||
|
|
||||||
|
3.2.2.1.1
|
||||||
|
| 3.2.2.1.1 body
|
||||||
|
|
||||||
|
3.2.2.1.2.1
|
||||||
|
| 3.2.2.1.2.1 body
|
||||||
|
|
||||||
|
3.2.2.1.2.1.1
|
||||||
|
| 3.2.2.1.2.1.1 body
|
||||||
|
|
||||||
|
3.3
|
||||||
|
| 3.3 body
|
||||||
|
|
||||||
|
4
|
||||||
|
| 4 body
|
||||||
|
|
||||||
|
4.1
|
||||||
|
| 4.1 body findme
|
||||||
|
|
||||||
|
5
|
||||||
|
| 5 body
|
||||||
|
|
||||||
|
5.1
|
||||||
|
| 5.1 body
|
||||||
|
|
||||||
|
5.2
|
||||||
|
| 5.2 body
|
||||||
|
|
||||||
|
5.2.1
|
||||||
|
| 5.2.1 body
|
||||||
|
|
||||||
|
5.2.2
|
||||||
|
| 5.2.2 body
|
||||||
|
|
||||||
|
5.2.2.1
|
||||||
|
| 5.2.2.1 body
|
||||||
|
|
||||||
|
5.2.2.1.1
|
||||||
|
| 5.2.2.1.1 body
|
||||||
|
|
||||||
|
5.2.2.1.2
|
||||||
|
| 5.2.2.1.2 body
|
||||||
|
|
||||||
|
|
||||||
|
5.2.3
|
||||||
|
| 5.2.3 body
|
||||||
|
|
||||||
|
AA
|
||||||
|
| a a a a
|
||||||
|
|
||||||
|
AA.1
|
||||||
|
| a1 a1 a1 a1
|
||||||
|
|
||||||
|
BB
|
||||||
|
| b b b b
|
||||||
|
|
||||||
|
BB.1
|
||||||
|
| b1 b1 b1 b1 b1
|
||||||
|
|
||||||
|
5.3
|
||||||
|
| 5.3 body
|
||||||
|
| findme
|
||||||
|
|
||||||
|
tests
|
||||||
|
|
||||||
|
syntax tests
|
||||||
|
| Since v2.1 comment chars before foldmarker are stripped according to filetype.
|
||||||
|
| Some Body filetypes have their own Tree syntax hi.
|
||||||
|
|
||||||
|
|
||||||
|
//---TODO comment--- //
|
||||||
|
|
||||||
|
"---comment--- "
|
||||||
|
| echo 'vim ok'
|
||||||
|
|
||||||
|
#---comment--- #
|
||||||
|
| print 'py ok'
|
||||||
|
|
||||||
|
%---comment--- %
|
||||||
|
|
||||||
|
/*---comment--- /*
|
||||||
|
|
||||||
|
\<!-- Comment
|
||||||
|
| ft=html,xml
|
||||||
|
|
||||||
|
html head \<!
|
||||||
|
|
||||||
|
/organizer node/
|
||||||
|
|
||||||
|
!warning mark
|
||||||
|
|
||||||
|
Voomgrep tests
|
||||||
|
| :Voomg Spam and ham not bacon
|
||||||
|
| :Voomg Spam and\ ham not\ bacon
|
||||||
|
| :Voomg Spam and\\ ham not\\ bacon
|
||||||
|
| \Spam// ' "
|
||||||
|
|
||||||
|
n44 breakfast
|
||||||
|
| eggs
|
||||||
|
| bacon
|
||||||
|
|
||||||
|
n45 lunch
|
||||||
|
| Spam Spam Spam Spam Spam Spam Spam Spam Spam
|
||||||
|
| Spam Spam Spam Spam Spam Spam Spam Spam Spam
|
||||||
|
| Spam Spam Spam Spam Spam Spam Spam Spam Spam
|
||||||
|
| ham
|
||||||
|
|
||||||
|
n46 dinner
|
||||||
|
| eggs
|
||||||
|
| Spam
|
||||||
|
| ham
|
||||||
|
|
||||||
|
n47 snack
|
||||||
|
| bacon
|
||||||
|
| spam
|
||||||
|
| HAM
|
||||||
|
| beef
|
||||||
|
|
||||||
|
sort tests
|
||||||
|
|
||||||
|
node 2
|
||||||
|
|
||||||
|
dddd
|
||||||
|
| d1
|
||||||
|
|
||||||
|
eeee
|
||||||
|
|
||||||
|
dddd
|
||||||
|
| d2
|
||||||
|
|
||||||
|
|
||||||
|
bbbb
|
||||||
|
| b
|
||||||
|
|
||||||
|
b_yyy
|
||||||
|
|
||||||
|
b_xxx
|
||||||
|
|
||||||
|
cccc
|
||||||
|
| c
|
||||||
|
|
||||||
|
aaaa
|
||||||
|
| a
|
||||||
|
a_nnn
|
||||||
|
|
||||||
|
a_mmm
|
||||||
|
|
||||||
|
node 22
|
||||||
|
|
||||||
|
|
||||||
|
ñ
|
||||||
|
|
||||||
|
Ñ
|
||||||
|
| unicode tests
|
||||||
|
|
||||||
|
э
|
||||||
|
| 1
|
||||||
|
Я
|
||||||
|
| 2
|
||||||
|
ю
|
||||||
|
| 3
|
||||||
|
Э
|
||||||
|
| 4
|
||||||
|
я
|
||||||
|
| 5
|
||||||
|
Ю
|
||||||
|
| 6
|
||||||
|
|
||||||
|
node 1
|
||||||
|
|
||||||
|
bbbb
|
||||||
|
| b
|
||||||
|
|
||||||
|
dddd
|
||||||
|
| d1
|
||||||
|
|
||||||
|
DDDD
|
||||||
|
| ingorecase test
|
||||||
|
|
||||||
|
aaaa
|
||||||
|
| a
|
||||||
|
dddd
|
||||||
|
| d2
|
||||||
|
|
||||||
|
|
||||||
|
cccc
|
||||||
|
| c
|
||||||
|
|
||||||
|
z
|
||||||
|
|
||||||
|
special chars tests
|
||||||
|
|
||||||
|
'" /\\/
|
||||||
|
| " "" """
|
||||||
|
| ' '' """
|
||||||
|
| \ \\ \\\
|
||||||
|
| / // ///
|
||||||
|
| \//\
|
||||||
|
|
||||||
|
Брожу ли я
|
||||||
|
| Брожу. Чего ж не побродить.
|
||||||
|
|
||||||
|
| Чебурашка CHeburashka
|
||||||
|
| u'\u0427\u0435\u0431\u0443\u0440\u0430\u0448\u043a\u0430'
|
||||||
|
| utf-8
|
||||||
|
| '\xd0\xa7\xd0\xb5\xd0\xb1\xd1\x83\xd1\x80\xd0\xb0\xd1\x88\xd0\xba\xd0\xb0'
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,97 @@
|
||||||
|
# :Voom python
|
||||||
|
# VOoM test file for Python outlining mode
|
||||||
|
# no gotchas--oultine operations do not kill or create headlines
|
||||||
|
# vim: et ts=4 sw=4 sts=4 fdm=manual
|
||||||
|
|
||||||
|
"""
|
||||||
|
docstring
|
||||||
|
def func_in_docstring():
|
||||||
|
pass
|
||||||
|
# not COMMENT
|
||||||
|
after func_in_docstring
|
||||||
|
"""
|
||||||
|
|
||||||
|
a = [1, # COMMENT, headline
|
||||||
|
# COMMENT, not headline
|
||||||
|
2]
|
||||||
|
# line continuation
|
||||||
|
s = "oosp\
|
||||||
|
class Fake\
|
||||||
|
pass \
|
||||||
|
"
|
||||||
|
|
||||||
|
s2 = """
|
||||||
|
xx
|
||||||
|
yy
|
||||||
|
closing " " " must not be mistaken for start of docstring
|
||||||
|
"""
|
||||||
|
|
||||||
|
### if 1
|
||||||
|
# NEXT LINE IS FOR TEST SUITE -- DO NOT MOVE OR EDIT
|
||||||
|
# VO.levels=[1, 1, 2, 3, 3, 1, 1, 1, 2, 3, 3, 3, 2, 2, 1, 1, 1, 2, 3, 3, 1, 1, 1, 1, 1]
|
||||||
|
if 1:
|
||||||
|
### if 1
|
||||||
|
if 1:
|
||||||
|
def func1(a,
|
||||||
|
b,
|
||||||
|
c):
|
||||||
|
"""
|
||||||
|
docstring
|
||||||
|
"""
|
||||||
|
pass
|
||||||
|
#--- headline 1
|
||||||
|
|
||||||
|
def func_with_string(a, b, c=False, d="NoName",
|
||||||
|
e=None, f=0, g='Oopsy'):
|
||||||
|
"""
|
||||||
|
text text text text
|
||||||
|
"""
|
||||||
|
|
||||||
|
#---- headline before Class1
|
||||||
|
class Class1:
|
||||||
|
b = []
|
||||||
|
def func2():
|
||||||
|
### headline 2
|
||||||
|
a = 'a'
|
||||||
|
def func3():
|
||||||
|
pass
|
||||||
|
#----- headline 3
|
||||||
|
#----headline 4
|
||||||
|
def func4(): pass
|
||||||
|
|
||||||
|
#----- headline 5
|
||||||
|
# not headline
|
||||||
|
def func4(f):
|
||||||
|
'''
|
||||||
|
badly indented docstring
|
||||||
|
'''
|
||||||
|
pass
|
||||||
|
|
||||||
|
class Class2:
|
||||||
|
u" perversely formatted docstring \
|
||||||
|
perversely formatted docstring"
|
||||||
|
b = []
|
||||||
|
def func5():
|
||||||
|
pass
|
||||||
|
def func6():
|
||||||
|
pass
|
||||||
|
#--- headline 6
|
||||||
|
#---- headline 7
|
||||||
|
# not a headline
|
||||||
|
|
||||||
|
def func7(func):
|
||||||
|
a = \
|
||||||
|
"perverted continuation"
|
||||||
|
pass
|
||||||
|
|
||||||
|
@func7
|
||||||
|
def func8(): # <-- headline
|
||||||
|
a = 1
|
||||||
|
b = [1,
|
||||||
|
2, # <-- false headline
|
||||||
|
3]
|
||||||
|
c = 4
|
||||||
|
|
||||||
|
### if __name__=='__main__':
|
||||||
|
if __name__=='__main__':
|
||||||
|
print Class2.__doc__
|
408
vim_plugins_src/VOoM-4.3/VOoM-4.3/voom_samples/test_outline.rst
Normal file
408
vim_plugins_src/VOoM-4.3/VOoM-4.3/voom_samples/test_outline.rst
Normal file
|
@ -0,0 +1,408 @@
|
||||||
|
:Voom rest
|
||||||
|
This is VOoM markup mode test file. Converted from **test_outline.txt**.
|
||||||
|
NOTE: no gotchas, suitable for test suite
|
||||||
|
|
||||||
|
findme findme2
|
||||||
|
|
||||||
|
=
|
||||||
|
1
|
||||||
|
=
|
||||||
|
1 body
|
||||||
|
NEXT LINE IS FOR TESTS -- DO NOT MOVE OR EDIT
|
||||||
|
VO.levels=[1, 1, 2, 2, 1, 1, 2, 2, 3, 4, 3, 4, 5, 6, 7, 2, 1, 2, 1, 2, 2, 3, 3, 4, 5, 5, 3, 2, 3, 2, 3, 2, 1, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 2, 3, 4, 4, 4, 4, 5, 5, 4, 4, 5, 5, 3, 3, 3, 4, 4, 4, 4, 4, 4, 3, 4, 4, 4, 4, 4, 4, 3, 2, 3, 3]
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
1.1
|
||||||
|
---
|
||||||
|
1.1 body
|
||||||
|
|
||||||
|
---
|
||||||
|
1.2
|
||||||
|
---
|
||||||
|
1.2 body
|
||||||
|
|
||||||
|
=
|
||||||
|
2
|
||||||
|
=
|
||||||
|
2 body
|
||||||
|
|
||||||
|
=
|
||||||
|
3
|
||||||
|
=
|
||||||
|
3 body
|
||||||
|
|
||||||
|
---
|
||||||
|
3.1
|
||||||
|
---
|
||||||
|
3.1 body
|
||||||
|
|
||||||
|
---
|
||||||
|
3.2
|
||||||
|
---
|
||||||
|
3.2 body
|
||||||
|
|
||||||
|
|
||||||
|
3.2.1
|
||||||
|
=====
|
||||||
|
3.2.1 body
|
||||||
|
|
||||||
|
|
||||||
|
3.2.1.1
|
||||||
|
-------
|
||||||
|
3.2.1.1 body
|
||||||
|
xxxx findme findme
|
||||||
|
|
||||||
|
|
||||||
|
3.2.2
|
||||||
|
=====
|
||||||
|
3.2.2 body
|
||||||
|
|
||||||
|
|
||||||
|
3.2.2.1
|
||||||
|
-------
|
||||||
|
3.2.2.1 body
|
||||||
|
|
||||||
|
|
||||||
|
3.2.2.1.1
|
||||||
|
*********
|
||||||
|
3.2.2.1.1 body
|
||||||
|
|
||||||
|
|
||||||
|
3.2.2.1.2.1
|
||||||
|
"""""""""""
|
||||||
|
3.2.2.1.2.1 body
|
||||||
|
|
||||||
|
|
||||||
|
3.2.2.1.2.1.1
|
||||||
|
'''''''''''''
|
||||||
|
3.2.2.1.2.1.1 body
|
||||||
|
|
||||||
|
---
|
||||||
|
3.3
|
||||||
|
---
|
||||||
|
3.3 body
|
||||||
|
|
||||||
|
=
|
||||||
|
4
|
||||||
|
=
|
||||||
|
4 body
|
||||||
|
|
||||||
|
---
|
||||||
|
4.1
|
||||||
|
---
|
||||||
|
4.1 body findme
|
||||||
|
|
||||||
|
=
|
||||||
|
5
|
||||||
|
=
|
||||||
|
5 body
|
||||||
|
|
||||||
|
---
|
||||||
|
5.1
|
||||||
|
---
|
||||||
|
5.1 body
|
||||||
|
|
||||||
|
---
|
||||||
|
5.2
|
||||||
|
---
|
||||||
|
5.2 body
|
||||||
|
|
||||||
|
|
||||||
|
5.2.1
|
||||||
|
=====
|
||||||
|
5.2.1 body
|
||||||
|
|
||||||
|
|
||||||
|
5.2.2
|
||||||
|
=====
|
||||||
|
5.2.2 body
|
||||||
|
|
||||||
|
|
||||||
|
5.2.2.1
|
||||||
|
-------
|
||||||
|
5.2.2.1 body
|
||||||
|
|
||||||
|
|
||||||
|
5.2.2.1.1
|
||||||
|
*********
|
||||||
|
5.2.2.1.1 body
|
||||||
|
|
||||||
|
|
||||||
|
5.2.2.1.2
|
||||||
|
*********
|
||||||
|
5.2.2.1.2 body
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
5.2.3
|
||||||
|
=====
|
||||||
|
5.2.3 body
|
||||||
|
|
||||||
|
--
|
||||||
|
AA
|
||||||
|
--
|
||||||
|
a a a a
|
||||||
|
|
||||||
|
|
||||||
|
AA.1
|
||||||
|
====
|
||||||
|
a1 a1 a1 a1
|
||||||
|
|
||||||
|
--
|
||||||
|
BB
|
||||||
|
--
|
||||||
|
b b b b
|
||||||
|
|
||||||
|
|
||||||
|
BB.1
|
||||||
|
====
|
||||||
|
b1 b1 b1 b1 b1
|
||||||
|
|
||||||
|
---
|
||||||
|
5.3
|
||||||
|
---
|
||||||
|
5.3 body
|
||||||
|
findme
|
||||||
|
|
||||||
|
=====
|
||||||
|
tests
|
||||||
|
=====
|
||||||
|
|
||||||
|
------------
|
||||||
|
syntax tests
|
||||||
|
------------
|
||||||
|
Since v2.1 comment chars before foldmarker are stripped according to filetype.
|
||||||
|
Some Body filetypes have their own Tree syntax hi.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//---TODO comment--- //
|
||||||
|
=======================
|
||||||
|
|
||||||
|
|
||||||
|
"---comment--- "
|
||||||
|
================
|
||||||
|
echo 'vim ok'
|
||||||
|
|
||||||
|
|
||||||
|
#---comment--- #
|
||||||
|
================
|
||||||
|
print 'py ok'
|
||||||
|
|
||||||
|
|
||||||
|
%---comment--- %
|
||||||
|
================
|
||||||
|
|
||||||
|
|
||||||
|
/*---comment--- /*
|
||||||
|
==================
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Comment
|
||||||
|
============
|
||||||
|
ft=html,xml
|
||||||
|
|
||||||
|
|
||||||
|
html head <!
|
||||||
|
============
|
||||||
|
|
||||||
|
|
||||||
|
/organizer node/
|
||||||
|
================
|
||||||
|
|
||||||
|
|
||||||
|
!warning mark
|
||||||
|
=============
|
||||||
|
|
||||||
|
--------------
|
||||||
|
Voomgrep tests
|
||||||
|
--------------
|
||||||
|
:Voomg Spam and ham not bacon
|
||||||
|
:Voomg Spam and\ ham not\ bacon
|
||||||
|
:Voomg Spam and\\ ham not\\ bacon
|
||||||
|
\Spam// ' "
|
||||||
|
|
||||||
|
|
||||||
|
n44 breakfast
|
||||||
|
=============
|
||||||
|
eggs
|
||||||
|
bacon
|
||||||
|
|
||||||
|
|
||||||
|
n45 lunch
|
||||||
|
=========
|
||||||
|
Spam Spam Spam Spam Spam Spam Spam Spam Spam
|
||||||
|
Spam Spam Spam Spam Spam Spam Spam Spam Spam
|
||||||
|
Spam Spam Spam Spam Spam Spam Spam Spam Spam
|
||||||
|
ham
|
||||||
|
|
||||||
|
|
||||||
|
n46 dinner
|
||||||
|
==========
|
||||||
|
eggs
|
||||||
|
Spam
|
||||||
|
ham
|
||||||
|
|
||||||
|
|
||||||
|
n47 snack
|
||||||
|
=========
|
||||||
|
bacon
|
||||||
|
spam
|
||||||
|
HAM
|
||||||
|
beef
|
||||||
|
|
||||||
|
----------
|
||||||
|
sort tests
|
||||||
|
----------
|
||||||
|
|
||||||
|
|
||||||
|
node 2
|
||||||
|
======
|
||||||
|
|
||||||
|
|
||||||
|
dddd
|
||||||
|
----
|
||||||
|
d1
|
||||||
|
|
||||||
|
|
||||||
|
eeee
|
||||||
|
----
|
||||||
|
|
||||||
|
|
||||||
|
dddd
|
||||||
|
----
|
||||||
|
d2
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
bbbb
|
||||||
|
----
|
||||||
|
b
|
||||||
|
|
||||||
|
|
||||||
|
b_yyy
|
||||||
|
*****
|
||||||
|
|
||||||
|
|
||||||
|
b_xxx
|
||||||
|
*****
|
||||||
|
|
||||||
|
|
||||||
|
cccc
|
||||||
|
----
|
||||||
|
c
|
||||||
|
|
||||||
|
|
||||||
|
aaaa
|
||||||
|
----
|
||||||
|
a
|
||||||
|
|
||||||
|
a_nnn
|
||||||
|
*****
|
||||||
|
|
||||||
|
|
||||||
|
a_mmm
|
||||||
|
*****
|
||||||
|
|
||||||
|
|
||||||
|
node 22
|
||||||
|
=======
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ñ
|
||||||
|
=
|
||||||
|
|
||||||
|
|
||||||
|
Ñ
|
||||||
|
=
|
||||||
|
unicode tests
|
||||||
|
|
||||||
|
|
||||||
|
э
|
||||||
|
-
|
||||||
|
1
|
||||||
|
|
||||||
|
Я
|
||||||
|
-
|
||||||
|
2
|
||||||
|
|
||||||
|
ю
|
||||||
|
-
|
||||||
|
3
|
||||||
|
|
||||||
|
Э
|
||||||
|
-
|
||||||
|
4
|
||||||
|
|
||||||
|
я
|
||||||
|
-
|
||||||
|
5
|
||||||
|
|
||||||
|
Ю
|
||||||
|
-
|
||||||
|
6
|
||||||
|
|
||||||
|
|
||||||
|
node 1
|
||||||
|
======
|
||||||
|
|
||||||
|
|
||||||
|
bbbb
|
||||||
|
----
|
||||||
|
b
|
||||||
|
|
||||||
|
|
||||||
|
dddd
|
||||||
|
----
|
||||||
|
d1
|
||||||
|
|
||||||
|
|
||||||
|
DDDD
|
||||||
|
----
|
||||||
|
ingorecase test
|
||||||
|
|
||||||
|
|
||||||
|
aaaa
|
||||||
|
----
|
||||||
|
a
|
||||||
|
|
||||||
|
dddd
|
||||||
|
----
|
||||||
|
d2
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
cccc
|
||||||
|
----
|
||||||
|
c
|
||||||
|
|
||||||
|
|
||||||
|
z
|
||||||
|
=
|
||||||
|
|
||||||
|
-------------------
|
||||||
|
special chars tests
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
|
||||||
|
'" /\\/
|
||||||
|
=======
|
||||||
|
" "" """
|
||||||
|
' '' """
|
||||||
|
\ \\ \\\
|
||||||
|
/ // ///
|
||||||
|
\//\
|
||||||
|
|
||||||
|
|
||||||
|
Брожу ли я
|
||||||
|
==========
|
||||||
|
Брожу. Чего ж не побродить.
|
||||||
|
|
||||||
|
Чебурашка CHeburashka
|
||||||
|
u'\u0427\u0435\u0431\u0443\u0440\u0430\u0448\u043a\u0430'
|
||||||
|
utf-8
|
||||||
|
'\xd0\xa7\xd0\xb5\xd0\xb1\xd1\x83\xd1\x80\xd0\xb0\xd1\x88\xd0\xba\xd0\xb0'
|
||||||
|
|
||||||
|
|
249
vim_plugins_src/VOoM-4.3/VOoM-4.3/voom_samples/test_outline.t2t
Normal file
249
vim_plugins_src/VOoM-4.3/VOoM-4.3/voom_samples/test_outline.t2t
Normal file
|
@ -0,0 +1,249 @@
|
||||||
|
:Voom txt2tags
|
||||||
|
This is VOoM markup mode test file. Converted from **test_outline.txt**.
|
||||||
|
|
||||||
|
findme findme2
|
||||||
|
|
||||||
|
= 1 =[ref]
|
||||||
|
1 body
|
||||||
|
NEXT LINE IS FOR TESTS -- DO NOT MOVE OR EDIT
|
||||||
|
VO.levels=[1, 1, 2, 2, 1, 1, 2, 2, 3, 4, 3, 4, 5, 6, 7, 2, 1, 2, 1, 2, 2, 3, 3, 4, 5, 5, 3, 2, 3, 2, 3, 2, 1, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 2, 3, 4, 4, 4, 4, 5, 5, 4, 4, 5, 5, 3, 3, 3, 4, 4, 4, 4, 4, 4, 3, 4, 4, 4, 4, 4, 4, 3, 2, 3, 3]
|
||||||
|
|
||||||
|
|
||||||
|
== 1.1 ==[ref]
|
||||||
|
1.1 body
|
||||||
|
|
||||||
|
== 1.2 ==[ref]
|
||||||
|
1.2 body
|
||||||
|
|
||||||
|
= 2 =[ref]
|
||||||
|
2 body
|
||||||
|
|
||||||
|
= 3 =[ref]
|
||||||
|
3 body
|
||||||
|
|
||||||
|
== 3.1 ==[ref]
|
||||||
|
3.1 body
|
||||||
|
|
||||||
|
== 3.2 ==[ref]
|
||||||
|
3.2 body
|
||||||
|
|
||||||
|
+++ 3.2.1 +++[ref]
|
||||||
|
3.2.1 body
|
||||||
|
|
||||||
|
++++ 3.2.1.1 ++++[ref]
|
||||||
|
3.2.1.1 body
|
||||||
|
xxxx findme findme
|
||||||
|
|
||||||
|
+++ 3.2.2 +++[ref]
|
||||||
|
3.2.2 body
|
||||||
|
|
||||||
|
++++ 3.2.2.1 ++++[ref]
|
||||||
|
3.2.2.1 body
|
||||||
|
|
||||||
|
+++++ 3.2.2.1.1 +++++[ref]
|
||||||
|
3.2.2.1.1 body
|
||||||
|
|
||||||
|
++++++ 3.2.2.1.2.1 ++++++[ref]
|
||||||
|
3.2.2.1.2.1 body
|
||||||
|
|
||||||
|
+++++++ 3.2.2.1.2.1.1 +++++++[ref]
|
||||||
|
3.2.2.1.2.1.1 body
|
||||||
|
|
||||||
|
== 3.3 ==[ref]
|
||||||
|
3.3 body
|
||||||
|
|
||||||
|
= 4 =[ref]
|
||||||
|
4 body
|
||||||
|
|
||||||
|
== 4.1 ==[ref]
|
||||||
|
4.1 body findme
|
||||||
|
|
||||||
|
= 5 =[ref]
|
||||||
|
5 body
|
||||||
|
|
||||||
|
== 5.1 ==[ref]
|
||||||
|
5.1 body
|
||||||
|
|
||||||
|
== 5.2 ==[ref]
|
||||||
|
5.2 body
|
||||||
|
|
||||||
|
+++ 5.2.1 +++[ref]
|
||||||
|
5.2.1 body
|
||||||
|
|
||||||
|
+++ 5.2.2 +++[ref]
|
||||||
|
5.2.2 body
|
||||||
|
|
||||||
|
++++ 5.2.2.1 ++++[ref]
|
||||||
|
5.2.2.1 body
|
||||||
|
|
||||||
|
+++++ 5.2.2.1.1 +++++[ref]
|
||||||
|
5.2.2.1.1 body
|
||||||
|
|
||||||
|
+++++ 5.2.2.1.2 +++++[ref]
|
||||||
|
5.2.2.1.2 body
|
||||||
|
|
||||||
|
|
||||||
|
+++ 5.2.3 +++[ref]
|
||||||
|
5.2.3 body
|
||||||
|
|
||||||
|
== AA ==[ref]
|
||||||
|
a a a a
|
||||||
|
|
||||||
|
+++ AA.1 +++[ref]
|
||||||
|
a1 a1 a1 a1
|
||||||
|
|
||||||
|
== BB ==[ref]
|
||||||
|
b b b b
|
||||||
|
|
||||||
|
+++ BB.1 +++[ref]
|
||||||
|
b1 b1 b1 b1 b1
|
||||||
|
|
||||||
|
== 5.3 ==[ref]
|
||||||
|
5.3 body
|
||||||
|
findme
|
||||||
|
|
||||||
|
= tests =[ref]
|
||||||
|
|
||||||
|
== syntax tests ==[ref]
|
||||||
|
Since v2.1 comment chars before foldmarker are stripped according to filetype.
|
||||||
|
Some Body filetypes have their own Tree syntax hi.
|
||||||
|
|
||||||
|
|
||||||
|
+++ //---TODO comment--- // +++[ref]
|
||||||
|
|
||||||
|
+++ "---comment--- " +++[ref]
|
||||||
|
echo 'vim ok'
|
||||||
|
|
||||||
|
+++ #---comment--- # +++[ref]
|
||||||
|
print 'py ok'
|
||||||
|
|
||||||
|
+++ %---comment--- % +++[ref]
|
||||||
|
|
||||||
|
+++ /*---comment--- /* +++[ref]
|
||||||
|
|
||||||
|
+++ <!-- Comment +++[ref]
|
||||||
|
ft=html,xml
|
||||||
|
|
||||||
|
+++ html head <! +++[ref]
|
||||||
|
|
||||||
|
+++ /organizer node/ +++[ref]
|
||||||
|
|
||||||
|
+++ !warning mark +++[ref]
|
||||||
|
|
||||||
|
== Voomgrep tests ==[ref]
|
||||||
|
:Voomg Spam and ham not bacon
|
||||||
|
:Voomg Spam and\ ham not\ bacon
|
||||||
|
:Voomg Spam and\\ ham not\\ bacon
|
||||||
|
\Spam// ' "
|
||||||
|
|
||||||
|
+++ n44 breakfast +++[ref]
|
||||||
|
eggs
|
||||||
|
bacon
|
||||||
|
|
||||||
|
+++ n45 lunch +++[ref]
|
||||||
|
Spam Spam Spam Spam Spam Spam Spam Spam Spam
|
||||||
|
Spam Spam Spam Spam Spam Spam Spam Spam Spam
|
||||||
|
Spam Spam Spam Spam Spam Spam Spam Spam Spam
|
||||||
|
ham
|
||||||
|
|
||||||
|
+++ n46 dinner +++[ref]
|
||||||
|
eggs
|
||||||
|
Spam
|
||||||
|
ham
|
||||||
|
|
||||||
|
+++ n47 snack +++[ref]
|
||||||
|
bacon
|
||||||
|
spam
|
||||||
|
HAM
|
||||||
|
beef
|
||||||
|
|
||||||
|
== sort tests ==[ref]
|
||||||
|
|
||||||
|
+++ node 2 +++[ref]
|
||||||
|
|
||||||
|
++++ dddd ++++[ref]
|
||||||
|
d1
|
||||||
|
|
||||||
|
++++ eeee ++++[ref]
|
||||||
|
|
||||||
|
++++ dddd ++++[ref]
|
||||||
|
d2
|
||||||
|
|
||||||
|
|
||||||
|
++++ bbbb ++++[ref]
|
||||||
|
b
|
||||||
|
|
||||||
|
+++++ b_yyy +++++[ref]
|
||||||
|
|
||||||
|
+++++ b_xxx +++++[ref]
|
||||||
|
|
||||||
|
++++ cccc ++++[ref]
|
||||||
|
c
|
||||||
|
|
||||||
|
++++ aaaa ++++[ref]
|
||||||
|
a
|
||||||
|
+++++ a_nnn +++++[ref]
|
||||||
|
|
||||||
|
+++++ a_mmm +++++[ref]
|
||||||
|
|
||||||
|
+++ node 22 +++[ref]
|
||||||
|
|
||||||
|
|
||||||
|
+++ ñ +++[ref]
|
||||||
|
|
||||||
|
+++ Ñ +++[ref]
|
||||||
|
unicode tests
|
||||||
|
|
||||||
|
++++ э ++++[ref]
|
||||||
|
1
|
||||||
|
++++ Я ++++[ref]
|
||||||
|
2
|
||||||
|
++++ ю ++++[ref]
|
||||||
|
3
|
||||||
|
++++ Э ++++[ref]
|
||||||
|
4
|
||||||
|
++++ я ++++[ref]
|
||||||
|
5
|
||||||
|
++++ Ю ++++[ref]
|
||||||
|
6
|
||||||
|
|
||||||
|
+++ node 1 +++[ref]
|
||||||
|
|
||||||
|
++++ bbbb ++++[ref]
|
||||||
|
b
|
||||||
|
|
||||||
|
++++ dddd ++++[ref]
|
||||||
|
d1
|
||||||
|
|
||||||
|
++++ DDDD ++++[ref]
|
||||||
|
ingorecase test
|
||||||
|
|
||||||
|
++++ aaaa ++++[ref]
|
||||||
|
a
|
||||||
|
++++ dddd ++++[ref]
|
||||||
|
d2
|
||||||
|
|
||||||
|
|
||||||
|
++++ cccc ++++[ref]
|
||||||
|
c
|
||||||
|
|
||||||
|
+++ z +++[ref]
|
||||||
|
|
||||||
|
== special chars tests ==[ref]
|
||||||
|
|
||||||
|
+++ '" /\\/ +++[ref]
|
||||||
|
" "" """
|
||||||
|
' '' """
|
||||||
|
\ \\ \\\
|
||||||
|
/ // ///
|
||||||
|
\//\
|
||||||
|
|
||||||
|
+++ Брожу ли я +++[ref]
|
||||||
|
Брожу. Чего ж не побродить.
|
||||||
|
|
||||||
|
Чебурашка CHeburashka
|
||||||
|
u'\u0427\u0435\u0431\u0443\u0440\u0430\u0448\u043a\u0430'
|
||||||
|
utf-8
|
||||||
|
'\xd0\xa7\xd0\xb5\xd0\xb1\xd1\x83\xd1\x80\xd0\xb0\xd1\x88\xd0\xba\xd0\xb0'
|
||||||
|
|
||||||
|
|
249
vim_plugins_src/VOoM-4.3/VOoM-4.3/voom_samples/test_outline.txt
Normal file
249
vim_plugins_src/VOoM-4.3/VOoM-4.3/voom_samples/test_outline.txt
Normal file
|
@ -0,0 +1,249 @@
|
||||||
|
vim:fdm=marker:
|
||||||
|
vim:foldtext=getline(v\:foldstart).'...'.(v\:foldend-v\:foldstart):
|
||||||
|
|
||||||
|
findme findme2
|
||||||
|
|
||||||
|
---1--- {{{1
|
||||||
|
1 body
|
||||||
|
NEXT LINE IS FOR TESTS -- DO NOT MOVE OR EDIT
|
||||||
|
VO.levels=[1, 1, 2, 2, 1, 1, 2, 2, 3, 4, 3, 4, 5, 6, 7, 2, 1, 2, 1, 2, 2, 3, 3, 4, 5, 5, 3, 2, 3, 2, 3, 2, 1, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 2, 3, 4, 4, 4, 4, 5, 5, 4, 4, 5, 5, 3, 3, 3, 4, 4, 4, 4, 4, 4, 3, 4, 4, 4, 4, 4, 4, 3, 2, 3, 3]
|
||||||
|
|
||||||
|
|
||||||
|
---1.1--- {{{2
|
||||||
|
1.1 body
|
||||||
|
|
||||||
|
---1.2--- {{{2
|
||||||
|
1.2 body
|
||||||
|
|
||||||
|
---2--- {{{1
|
||||||
|
2 body
|
||||||
|
|
||||||
|
---3--- {{{1o=
|
||||||
|
3 body
|
||||||
|
|
||||||
|
---3.1--- {{{2x
|
||||||
|
3.1 body
|
||||||
|
|
||||||
|
---3.2--- {{{2x
|
||||||
|
3.2 body
|
||||||
|
|
||||||
|
---3.2.1--- {{{3
|
||||||
|
3.2.1 body
|
||||||
|
|
||||||
|
---3.2.1.1--- {{{4
|
||||||
|
3.2.1.1 body
|
||||||
|
xxxx findme findme
|
||||||
|
|
||||||
|
---3.2.2--- {{{3
|
||||||
|
3.2.2 body
|
||||||
|
|
||||||
|
---3.2.2.1--- {{{4x
|
||||||
|
3.2.2.1 body
|
||||||
|
|
||||||
|
---3.2.2.1.1--- {{{5x
|
||||||
|
3.2.2.1.1 body
|
||||||
|
|
||||||
|
---3.2.2.1.2.1--- {{{6
|
||||||
|
3.2.2.1.2.1 body
|
||||||
|
|
||||||
|
---3.2.2.1.2.1.1--- {{{7x
|
||||||
|
3.2.2.1.2.1.1 body
|
||||||
|
|
||||||
|
---3.3--- {{{2
|
||||||
|
3.3 body
|
||||||
|
|
||||||
|
---4--- {{{1
|
||||||
|
4 body
|
||||||
|
|
||||||
|
---4.1--- {{{2
|
||||||
|
4.1 body findme
|
||||||
|
|
||||||
|
---5--- {{{1o
|
||||||
|
5 body
|
||||||
|
|
||||||
|
---5.1--- {{{2
|
||||||
|
5.1 body
|
||||||
|
|
||||||
|
---5.2--- {{{2o
|
||||||
|
5.2 body
|
||||||
|
|
||||||
|
---5.2.1--- {{{3
|
||||||
|
5.2.1 body
|
||||||
|
|
||||||
|
---5.2.2--- {{{3
|
||||||
|
5.2.2 body
|
||||||
|
|
||||||
|
---5.2.2.1--- {{{4o
|
||||||
|
5.2.2.1 body
|
||||||
|
|
||||||
|
---5.2.2.1.1--- {{{5
|
||||||
|
5.2.2.1.1 body
|
||||||
|
|
||||||
|
---5.2.2.1.2--- {{{5
|
||||||
|
5.2.2.1.2 body
|
||||||
|
|
||||||
|
|
||||||
|
---5.2.3--- {{{3
|
||||||
|
5.2.3 body
|
||||||
|
|
||||||
|
--- AA --- {{{2
|
||||||
|
a a a a
|
||||||
|
|
||||||
|
--- AA.1 --- {{{3
|
||||||
|
a1 a1 a1 a1
|
||||||
|
|
||||||
|
--- BB --- {{{2
|
||||||
|
b b b b
|
||||||
|
|
||||||
|
--- BB.1 --- {{{3
|
||||||
|
b1 b1 b1 b1 b1
|
||||||
|
|
||||||
|
---5.3--- {{{2
|
||||||
|
5.3 body
|
||||||
|
findme
|
||||||
|
|
||||||
|
---tests--- {{{1o
|
||||||
|
|
||||||
|
--- syntax tests --- {{{2
|
||||||
|
Since v2.1 comment chars before foldmarker are stripped according to filetype.
|
||||||
|
Some Body filetypes have their own Tree syntax hi.
|
||||||
|
|
||||||
|
|
||||||
|
//---TODO comment--- //{{{3
|
||||||
|
|
||||||
|
"---comment--- "{{{3
|
||||||
|
echo 'vim ok'
|
||||||
|
|
||||||
|
#---comment--- #{{{3
|
||||||
|
print 'py ok'
|
||||||
|
|
||||||
|
%---comment--- %{{{3
|
||||||
|
|
||||||
|
/*---comment--- /*{{{3*/
|
||||||
|
|
||||||
|
<!-- Comment {{{3 -->
|
||||||
|
ft=html,xml
|
||||||
|
|
||||||
|
html head <!--{{{3-->
|
||||||
|
|
||||||
|
--- /organizer node/ --- {{{3
|
||||||
|
|
||||||
|
--- !warning mark --- {{{3
|
||||||
|
|
||||||
|
--- Voomgrep tests--- {{{2
|
||||||
|
:Voomg Spam and ham not bacon
|
||||||
|
:Voomg Spam and\ ham not\ bacon
|
||||||
|
:Voomg Spam and\\ ham not\\ bacon
|
||||||
|
\Spam// ' "
|
||||||
|
|
||||||
|
--- n44 breakfast --- {{{3
|
||||||
|
eggs
|
||||||
|
bacon
|
||||||
|
|
||||||
|
--- n45 lunch --- {{{3
|
||||||
|
Spam Spam Spam Spam Spam Spam Spam Spam Spam
|
||||||
|
Spam Spam Spam Spam Spam Spam Spam Spam Spam
|
||||||
|
Spam Spam Spam Spam Spam Spam Spam Spam Spam
|
||||||
|
ham
|
||||||
|
|
||||||
|
--- n46 dinner --- {{{3
|
||||||
|
eggs
|
||||||
|
Spam
|
||||||
|
ham
|
||||||
|
|
||||||
|
--- n47 snack --- {{{3
|
||||||
|
bacon
|
||||||
|
spam
|
||||||
|
HAM
|
||||||
|
beef
|
||||||
|
|
||||||
|
--- sort tests --- {{{2
|
||||||
|
|
||||||
|
--- node 2 --- {{{3
|
||||||
|
|
||||||
|
--- dddd --- {{{4x
|
||||||
|
d1
|
||||||
|
|
||||||
|
--- eeee --- {{{4
|
||||||
|
|
||||||
|
--- dddd --- {{{4
|
||||||
|
d2
|
||||||
|
|
||||||
|
|
||||||
|
--- bbbb --- {{{4o
|
||||||
|
b
|
||||||
|
|
||||||
|
--- b_yyy --- {{{5
|
||||||
|
|
||||||
|
--- b_xxx --- {{{5
|
||||||
|
|
||||||
|
--- cccc --- {{{4
|
||||||
|
c
|
||||||
|
|
||||||
|
--- aaaa --- {{{4
|
||||||
|
a
|
||||||
|
--- a_nnn --- {{{5
|
||||||
|
|
||||||
|
--- a_mmm --- {{{5
|
||||||
|
|
||||||
|
--- node 22 --- {{{3
|
||||||
|
|
||||||
|
|
||||||
|
--- ñ --- {{{3
|
||||||
|
|
||||||
|
--- Ñ --- {{{3
|
||||||
|
unicode tests
|
||||||
|
|
||||||
|
--- э --- {{{4
|
||||||
|
1
|
||||||
|
--- Я --- {{{4
|
||||||
|
2
|
||||||
|
--- ю --- {{{4
|
||||||
|
3
|
||||||
|
--- Э --- {{{4
|
||||||
|
4
|
||||||
|
--- я --- {{{4
|
||||||
|
5
|
||||||
|
--- Ю --- {{{4
|
||||||
|
6
|
||||||
|
|
||||||
|
--- node 1 --- {{{3
|
||||||
|
|
||||||
|
--- bbbb --- {{{4
|
||||||
|
b
|
||||||
|
|
||||||
|
--- dddd --- {{{4
|
||||||
|
d1
|
||||||
|
|
||||||
|
--- DDDD --- {{{4
|
||||||
|
ingorecase test
|
||||||
|
|
||||||
|
--- aaaa --- {{{4
|
||||||
|
a
|
||||||
|
--- dddd --- {{{4
|
||||||
|
d2
|
||||||
|
|
||||||
|
|
||||||
|
--- cccc --- {{{4
|
||||||
|
c
|
||||||
|
|
||||||
|
--- z --- {{{3
|
||||||
|
|
||||||
|
--- special chars tests --- {{{2
|
||||||
|
|
||||||
|
--- '" /\\/ --- {{{3 '" /\\/
|
||||||
|
" "" """
|
||||||
|
' '' """
|
||||||
|
\ \\ \\\
|
||||||
|
/ // ///
|
||||||
|
\//\
|
||||||
|
|
||||||
|
--- Брожу ли я {{{3 вдоль улиц шумных? (utf-8)
|
||||||
|
Брожу. Чего ж не побродить.
|
||||||
|
|
||||||
|
Чебурашка CHeburashka
|
||||||
|
u'\u0427\u0435\u0431\u0443\u0440\u0430\u0448\u043a\u0430'
|
||||||
|
utf-8
|
||||||
|
'\xd0\xa7\xd0\xb5\xd0\xb1\xd1\x83\xd1\x80\xd0\xb0\xd1\x88\xd0\xba\xd0\xb0'
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,249 @@
|
||||||
|
:Voom vimwiki
|
||||||
|
This is VOoM markup mode test file. Converted from **test_outline.txt**.
|
||||||
|
|
||||||
|
findme findme2
|
||||||
|
|
||||||
|
= 1 =
|
||||||
|
1 body
|
||||||
|
NEXT LINE IS FOR TESTS -- DO NOT MOVE OR EDIT
|
||||||
|
VO.levels=[1, 1, 2, 2, 1, 1, 2, 2, 3, 4, 3, 4, 5, 6, 7, 2, 1, 2, 1, 2, 2, 3, 3, 4, 5, 5, 3, 2, 3, 2, 3, 2, 1, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 2, 3, 4, 4, 4, 4, 5, 5, 4, 4, 5, 5, 3, 3, 3, 4, 4, 4, 4, 4, 4, 3, 4, 4, 4, 4, 4, 4, 3, 2, 3, 3]
|
||||||
|
|
||||||
|
|
||||||
|
== 1.1 ==
|
||||||
|
1.1 body
|
||||||
|
|
||||||
|
== 1.2 ==
|
||||||
|
1.2 body
|
||||||
|
|
||||||
|
= 2 =
|
||||||
|
2 body
|
||||||
|
|
||||||
|
= 3 =
|
||||||
|
3 body
|
||||||
|
|
||||||
|
== 3.1 ==
|
||||||
|
3.1 body
|
||||||
|
|
||||||
|
== 3.2 ==
|
||||||
|
3.2 body
|
||||||
|
|
||||||
|
=== 3.2.1 ===
|
||||||
|
3.2.1 body
|
||||||
|
|
||||||
|
==== 3.2.1.1 ====
|
||||||
|
3.2.1.1 body
|
||||||
|
xxxx findme findme
|
||||||
|
|
||||||
|
=== 3.2.2 ===
|
||||||
|
3.2.2 body
|
||||||
|
|
||||||
|
==== 3.2.2.1 ====
|
||||||
|
3.2.2.1 body
|
||||||
|
|
||||||
|
===== 3.2.2.1.1 =====
|
||||||
|
3.2.2.1.1 body
|
||||||
|
|
||||||
|
====== 3.2.2.1.2.1 ======
|
||||||
|
3.2.2.1.2.1 body
|
||||||
|
|
||||||
|
======= 3.2.2.1.2.1.1 =======
|
||||||
|
3.2.2.1.2.1.1 body
|
||||||
|
|
||||||
|
== 3.3 ==
|
||||||
|
3.3 body
|
||||||
|
|
||||||
|
= 4 =
|
||||||
|
4 body
|
||||||
|
|
||||||
|
== 4.1 ==
|
||||||
|
4.1 body findme
|
||||||
|
|
||||||
|
= 5 =
|
||||||
|
5 body
|
||||||
|
|
||||||
|
== 5.1 ==
|
||||||
|
5.1 body
|
||||||
|
|
||||||
|
== 5.2 ==
|
||||||
|
5.2 body
|
||||||
|
|
||||||
|
=== 5.2.1 ===
|
||||||
|
5.2.1 body
|
||||||
|
|
||||||
|
=== 5.2.2 ===
|
||||||
|
5.2.2 body
|
||||||
|
|
||||||
|
==== 5.2.2.1 ====
|
||||||
|
5.2.2.1 body
|
||||||
|
|
||||||
|
===== 5.2.2.1.1 =====
|
||||||
|
5.2.2.1.1 body
|
||||||
|
|
||||||
|
===== 5.2.2.1.2 =====
|
||||||
|
5.2.2.1.2 body
|
||||||
|
|
||||||
|
|
||||||
|
=== 5.2.3 ===
|
||||||
|
5.2.3 body
|
||||||
|
|
||||||
|
== AA ==
|
||||||
|
a a a a
|
||||||
|
|
||||||
|
=== AA.1 ===
|
||||||
|
a1 a1 a1 a1
|
||||||
|
|
||||||
|
== BB ==
|
||||||
|
b b b b
|
||||||
|
|
||||||
|
=== BB.1 ===
|
||||||
|
b1 b1 b1 b1 b1
|
||||||
|
|
||||||
|
== 5.3 ==
|
||||||
|
5.3 body
|
||||||
|
findme
|
||||||
|
|
||||||
|
= tests =
|
||||||
|
|
||||||
|
== syntax tests ==
|
||||||
|
Since v2.1 comment chars before foldmarker are stripped according to filetype.
|
||||||
|
Some Body filetypes have their own Tree syntax hi.
|
||||||
|
|
||||||
|
|
||||||
|
=== //---TODO comment--- // ===
|
||||||
|
|
||||||
|
=== "---comment--- " ===
|
||||||
|
echo 'vim ok'
|
||||||
|
|
||||||
|
=== #---comment--- # ===
|
||||||
|
print 'py ok'
|
||||||
|
|
||||||
|
=== %---comment--- % ===
|
||||||
|
|
||||||
|
=== /*---comment--- /* ===
|
||||||
|
|
||||||
|
=== <!-- Comment ===
|
||||||
|
ft=html,xml
|
||||||
|
|
||||||
|
=== html head <! ===
|
||||||
|
|
||||||
|
=== /organizer node/ ===
|
||||||
|
|
||||||
|
=== !warning mark ===
|
||||||
|
|
||||||
|
== Voomgrep tests ==
|
||||||
|
:Voomg Spam and ham not bacon
|
||||||
|
:Voomg Spam and\ ham not\ bacon
|
||||||
|
:Voomg Spam and\\ ham not\\ bacon
|
||||||
|
\Spam// ' "
|
||||||
|
|
||||||
|
=== n44 breakfast ===
|
||||||
|
eggs
|
||||||
|
bacon
|
||||||
|
|
||||||
|
=== n45 lunch ===
|
||||||
|
Spam Spam Spam Spam Spam Spam Spam Spam Spam
|
||||||
|
Spam Spam Spam Spam Spam Spam Spam Spam Spam
|
||||||
|
Spam Spam Spam Spam Spam Spam Spam Spam Spam
|
||||||
|
ham
|
||||||
|
|
||||||
|
=== n46 dinner ===
|
||||||
|
eggs
|
||||||
|
Spam
|
||||||
|
ham
|
||||||
|
|
||||||
|
=== n47 snack ===
|
||||||
|
bacon
|
||||||
|
spam
|
||||||
|
HAM
|
||||||
|
beef
|
||||||
|
|
||||||
|
== sort tests ==
|
||||||
|
|
||||||
|
=== node 2 ===
|
||||||
|
|
||||||
|
==== dddd ====
|
||||||
|
d1
|
||||||
|
|
||||||
|
==== eeee ====
|
||||||
|
|
||||||
|
==== dddd ====
|
||||||
|
d2
|
||||||
|
|
||||||
|
|
||||||
|
==== bbbb ====
|
||||||
|
b
|
||||||
|
|
||||||
|
===== b_yyy =====
|
||||||
|
|
||||||
|
===== b_xxx =====
|
||||||
|
|
||||||
|
==== cccc ====
|
||||||
|
c
|
||||||
|
|
||||||
|
==== aaaa ====
|
||||||
|
a
|
||||||
|
===== a_nnn =====
|
||||||
|
|
||||||
|
===== a_mmm =====
|
||||||
|
|
||||||
|
=== node 22 ===
|
||||||
|
|
||||||
|
|
||||||
|
=== ñ ===
|
||||||
|
|
||||||
|
=== Ñ ===
|
||||||
|
unicode tests
|
||||||
|
|
||||||
|
==== э ====
|
||||||
|
1
|
||||||
|
==== Я ====
|
||||||
|
2
|
||||||
|
==== ю ====
|
||||||
|
3
|
||||||
|
==== Э ====
|
||||||
|
4
|
||||||
|
==== я ====
|
||||||
|
5
|
||||||
|
==== Ю ====
|
||||||
|
6
|
||||||
|
|
||||||
|
=== node 1 ===
|
||||||
|
|
||||||
|
==== bbbb ====
|
||||||
|
b
|
||||||
|
|
||||||
|
==== dddd ====
|
||||||
|
d1
|
||||||
|
|
||||||
|
==== DDDD ====
|
||||||
|
ingorecase test
|
||||||
|
|
||||||
|
==== aaaa ====
|
||||||
|
a
|
||||||
|
==== dddd ====
|
||||||
|
d2
|
||||||
|
|
||||||
|
|
||||||
|
==== cccc ====
|
||||||
|
c
|
||||||
|
|
||||||
|
=== z ===
|
||||||
|
|
||||||
|
== special chars tests ==
|
||||||
|
|
||||||
|
=== '" /\\/ ===
|
||||||
|
" "" """
|
||||||
|
' '' """
|
||||||
|
\ \\ \\\
|
||||||
|
/ // ///
|
||||||
|
\//\
|
||||||
|
|
||||||
|
=== Брожу ли я ===
|
||||||
|
Брожу. Чего ж не побродить.
|
||||||
|
|
||||||
|
Чебурашка CHeburashka
|
||||||
|
u'\u0427\u0435\u0431\u0443\u0440\u0430\u0448\u043a\u0430'
|
||||||
|
utf-8
|
||||||
|
'\xd0\xa7\xd0\xb5\xd0\xb1\xd1\x83\xd1\x80\xd0\xb0\xd1\x88\xd0\xba\xd0\xb0'
|
||||||
|
|
||||||
|
|
250
vim_plugins_src/VOoM-4.3/VOoM-4.3/voom_samples/test_outline.wiki
Normal file
250
vim_plugins_src/VOoM-4.3/VOoM-4.3/voom_samples/test_outline.wiki
Normal file
|
@ -0,0 +1,250 @@
|
||||||
|
:Voom wiki
|
||||||
|
This is VOoM markup mode test file. Converted from **test_outline.txt**.
|
||||||
|
NOTE: MediaWiki format, with fold markers
|
||||||
|
|
||||||
|
findme findme2
|
||||||
|
|
||||||
|
= 1 = <!--{{{1-->
|
||||||
|
1 body
|
||||||
|
NEXT LINE IS FOR TESTS -- DO NOT MOVE OR EDIT
|
||||||
|
VO.levels=[1, 1, 2, 2, 1, 1, 2, 2, 3, 4, 3, 4, 5, 6, 7, 2, 1, 2, 1, 2, 2, 3, 3, 4, 5, 5, 3, 2, 3, 2, 3, 2, 1, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 2, 3, 4, 4, 4, 4, 5, 5, 4, 4, 5, 5, 3, 3, 3, 4, 4, 4, 4, 4, 4, 3, 4, 4, 4, 4, 4, 4, 3, 2, 3, 3]
|
||||||
|
|
||||||
|
|
||||||
|
== 1.1 == <!--{{{2-->
|
||||||
|
1.1 body
|
||||||
|
|
||||||
|
== 1.2 == <!--{{{2-->
|
||||||
|
1.2 body
|
||||||
|
|
||||||
|
= 2 = <!--{{{1-->
|
||||||
|
2 body
|
||||||
|
|
||||||
|
= 3 = <!--{{{1o=-->
|
||||||
|
3 body
|
||||||
|
|
||||||
|
== 3.1 == <!--{{{2x-->
|
||||||
|
3.1 body
|
||||||
|
|
||||||
|
== 3.2 == <!--{{{2x-->
|
||||||
|
3.2 body
|
||||||
|
|
||||||
|
=== 3.2.1 === <!--{{{3-->
|
||||||
|
3.2.1 body
|
||||||
|
|
||||||
|
==== 3.2.1.1 ==== <!--{{{4-->
|
||||||
|
3.2.1.1 body
|
||||||
|
xxxx findme findme
|
||||||
|
|
||||||
|
=== 3.2.2 === <!--{{{3-->
|
||||||
|
3.2.2 body
|
||||||
|
|
||||||
|
==== 3.2.2.1 ==== <!--{{{4x-->
|
||||||
|
3.2.2.1 body
|
||||||
|
|
||||||
|
===== 3.2.2.1.1 ===== <!--{{{5x-->
|
||||||
|
3.2.2.1.1 body
|
||||||
|
|
||||||
|
====== 3.2.2.1.2.1 ====== <!--{{{6-->
|
||||||
|
3.2.2.1.2.1 body
|
||||||
|
|
||||||
|
======= 3.2.2.1.2.1.1 ======= <!--{{{7x-->
|
||||||
|
3.2.2.1.2.1.1 body
|
||||||
|
|
||||||
|
== 3.3 == <!--{{{2-->
|
||||||
|
3.3 body
|
||||||
|
|
||||||
|
= 4 = <!--{{{1-->
|
||||||
|
4 body
|
||||||
|
|
||||||
|
== 4.1 == <!--{{{2-->
|
||||||
|
4.1 body findme
|
||||||
|
|
||||||
|
= 5 = <!--{{{1o-->
|
||||||
|
5 body
|
||||||
|
|
||||||
|
== 5.1 == <!--{{{2-->
|
||||||
|
5.1 body
|
||||||
|
|
||||||
|
== 5.2 == <!--{{{2o-->
|
||||||
|
5.2 body
|
||||||
|
|
||||||
|
=== 5.2.1 === <!--{{{3-->
|
||||||
|
5.2.1 body
|
||||||
|
|
||||||
|
=== 5.2.2 === <!--{{{3-->
|
||||||
|
5.2.2 body
|
||||||
|
|
||||||
|
==== 5.2.2.1 ==== <!--{{{4o-->
|
||||||
|
5.2.2.1 body
|
||||||
|
|
||||||
|
===== 5.2.2.1.1 ===== <!--{{{5-->
|
||||||
|
5.2.2.1.1 body
|
||||||
|
|
||||||
|
===== 5.2.2.1.2 ===== <!--{{{5-->
|
||||||
|
5.2.2.1.2 body
|
||||||
|
|
||||||
|
|
||||||
|
=== 5.2.3 === <!--{{{3-->
|
||||||
|
5.2.3 body
|
||||||
|
|
||||||
|
== AA == <!--{{{2-->
|
||||||
|
a a a a
|
||||||
|
|
||||||
|
=== AA.1 === <!--{{{3-->
|
||||||
|
a1 a1 a1 a1
|
||||||
|
|
||||||
|
== BB == <!--{{{2-->
|
||||||
|
b b b b
|
||||||
|
|
||||||
|
=== BB.1 === <!--{{{3-->
|
||||||
|
b1 b1 b1 b1 b1
|
||||||
|
|
||||||
|
== 5.3 == <!--{{{2-->
|
||||||
|
5.3 body
|
||||||
|
findme
|
||||||
|
|
||||||
|
= tests = <!--{{{1o-->
|
||||||
|
|
||||||
|
== syntax tests == <!--{{{2-->
|
||||||
|
Since v2.1 comment chars before foldmarker are stripped according to filetype.
|
||||||
|
Some Body filetypes have their own Tree syntax hi.
|
||||||
|
|
||||||
|
|
||||||
|
=== //---TODO comment--- // === <!--{{{3-->
|
||||||
|
|
||||||
|
=== "---comment--- " === <!--{{{3-->
|
||||||
|
echo 'vim ok'
|
||||||
|
|
||||||
|
=== #---comment--- # === <!--{{{3-->
|
||||||
|
print 'py ok'
|
||||||
|
|
||||||
|
=== %---comment--- % === <!--{{{3-->
|
||||||
|
|
||||||
|
=== /*---comment--- /* === <!--{{{3*/-->
|
||||||
|
|
||||||
|
=== <!-- Comment === <!--{{{3 -->-->
|
||||||
|
ft=html,xml
|
||||||
|
|
||||||
|
=== html head <! === <!--{{{3-->-->
|
||||||
|
|
||||||
|
=== /organizer node/ === <!--{{{3-->
|
||||||
|
|
||||||
|
=== !warning mark === <!--{{{3-->
|
||||||
|
|
||||||
|
== Voomgrep tests == <!--{{{2-->
|
||||||
|
:Voomg Spam and ham not bacon
|
||||||
|
:Voomg Spam and\ ham not\ bacon
|
||||||
|
:Voomg Spam and\\ ham not\\ bacon
|
||||||
|
\Spam// ' "
|
||||||
|
|
||||||
|
=== n44 breakfast === <!--{{{3-->
|
||||||
|
eggs
|
||||||
|
bacon
|
||||||
|
|
||||||
|
=== n45 lunch === <!--{{{3-->
|
||||||
|
Spam Spam Spam Spam Spam Spam Spam Spam Spam
|
||||||
|
Spam Spam Spam Spam Spam Spam Spam Spam Spam
|
||||||
|
Spam Spam Spam Spam Spam Spam Spam Spam Spam
|
||||||
|
ham
|
||||||
|
|
||||||
|
=== n46 dinner === <!--{{{3-->
|
||||||
|
eggs
|
||||||
|
Spam
|
||||||
|
ham
|
||||||
|
|
||||||
|
=== n47 snack === <!--{{{3-->
|
||||||
|
bacon
|
||||||
|
spam
|
||||||
|
HAM
|
||||||
|
beef
|
||||||
|
|
||||||
|
== sort tests == <!--{{{2-->
|
||||||
|
|
||||||
|
=== node 2 === <!--{{{3-->
|
||||||
|
|
||||||
|
==== dddd ==== <!--{{{4x-->
|
||||||
|
d1
|
||||||
|
|
||||||
|
==== eeee ==== <!--{{{4-->
|
||||||
|
|
||||||
|
==== dddd ==== <!--{{{4-->
|
||||||
|
d2
|
||||||
|
|
||||||
|
|
||||||
|
==== bbbb ==== <!--{{{4o-->
|
||||||
|
b
|
||||||
|
|
||||||
|
===== b_yyy ===== <!--{{{5-->
|
||||||
|
|
||||||
|
===== b_xxx ===== <!--{{{5-->
|
||||||
|
|
||||||
|
==== cccc ==== <!--{{{4-->
|
||||||
|
c
|
||||||
|
|
||||||
|
==== aaaa ==== <!--{{{4-->
|
||||||
|
a
|
||||||
|
===== a_nnn ===== <!--{{{5-->
|
||||||
|
|
||||||
|
===== a_mmm ===== <!--{{{5-->
|
||||||
|
|
||||||
|
=== node 22 === <!--{{{3-->
|
||||||
|
|
||||||
|
|
||||||
|
=== ñ === <!--{{{3-->
|
||||||
|
|
||||||
|
=== Ñ === <!--{{{3-->
|
||||||
|
unicode tests
|
||||||
|
|
||||||
|
==== э ==== <!--{{{4-->
|
||||||
|
1
|
||||||
|
==== Я ==== <!--{{{4-->
|
||||||
|
2
|
||||||
|
==== ю ==== <!--{{{4-->
|
||||||
|
3
|
||||||
|
==== Э ==== <!--{{{4-->
|
||||||
|
4
|
||||||
|
==== я ==== <!--{{{4-->
|
||||||
|
5
|
||||||
|
==== Ю ==== <!--{{{4-->
|
||||||
|
6
|
||||||
|
|
||||||
|
=== node 1 === <!--{{{3-->
|
||||||
|
|
||||||
|
==== bbbb ==== <!--{{{4-->
|
||||||
|
b
|
||||||
|
|
||||||
|
==== dddd ==== <!--{{{4-->
|
||||||
|
d1
|
||||||
|
|
||||||
|
==== DDDD ==== <!--{{{4-->
|
||||||
|
ingorecase test
|
||||||
|
|
||||||
|
==== aaaa ==== <!--{{{4-->
|
||||||
|
a
|
||||||
|
==== dddd ==== <!--{{{4-->
|
||||||
|
d2
|
||||||
|
|
||||||
|
|
||||||
|
==== cccc ==== <!--{{{4-->
|
||||||
|
c
|
||||||
|
|
||||||
|
=== z === <!--{{{3-->
|
||||||
|
|
||||||
|
== special chars tests == <!--{{{2-->
|
||||||
|
|
||||||
|
=== '" /\\/ === <!--{{{3 '" /\\/-->
|
||||||
|
" "" """
|
||||||
|
' '' """
|
||||||
|
\ \\ \\\
|
||||||
|
/ // ///
|
||||||
|
\//\
|
||||||
|
|
||||||
|
=== Брожу ли я === <!--{{{3 вдоль улиц шумных? (utf-8)-->
|
||||||
|
Брожу. Чего ж не побродить.
|
||||||
|
|
||||||
|
Чебурашка CHeburashka
|
||||||
|
u'\u0427\u0435\u0431\u0443\u0440\u0430\u0448\u043a\u0430'
|
||||||
|
utf-8
|
||||||
|
'\xd0\xa7\xd0\xb5\xd0\xb1\xd1\x83\xd1\x80\xd0\xb0\xd1\x88\xd0\xba\xd0\xb0'
|
||||||
|
|
||||||
|
|
82
vim_plugins_src/VimOrganizer_v0313/INSTALL.txt
Normal file
82
vim_plugins_src/VimOrganizer_v0313/INSTALL.txt
Normal file
|
@ -0,0 +1,82 @@
|
||||||
|
Installation instructions for VimOrganizer v. 0.30, November 2011
|
||||||
|
=================================================================
|
||||||
|
|
||||||
|
1. Install VimOrganizer files as you would any other ftplugin, with downloaded
|
||||||
|
files going in their respective directories under your .vim (Linux/Mac)
|
||||||
|
or vimfiles (Windows) directory.
|
||||||
|
|
||||||
|
2. Run helptags on the help file in the /doc directory, vimorg.txt,
|
||||||
|
so hep items can be accessed using the Vim help system.
|
||||||
|
|
||||||
|
3. Make sure your vimrc has these lines:
|
||||||
|
-------------------------------------
|
||||||
|
filetype plugin indent on
|
||||||
|
|
||||||
|
[...and then somewhere below that:]
|
||||||
|
|
||||||
|
au! BufRead,BufWrite,BufWritePost,BufNewFile *.org
|
||||||
|
au BufEnter *.org call org#SetOrgFileType()
|
||||||
|
------------------------------------
|
||||||
|
|
||||||
|
If you use VimOrganizer much you will also want to configure variables
|
||||||
|
and/or functions in your vimrc. A sample vimrc has been included
|
||||||
|
in the download.
|
||||||
|
|
||||||
|
ALSO, you will want to install the plugins listed below. VimOrganizer
|
||||||
|
will work without them, but some functionality will be unavailable:
|
||||||
|
|
||||||
|
4. Make sure you have Calendar.vim installed.
|
||||||
|
(Calendar.vim comes included in the /plugin/ directory as part of
|
||||||
|
the Vim runtime in some Vim installs, otherwise available at:
|
||||||
|
http://www.vim.org/scripts/script.php?script_id=52)
|
||||||
|
|
||||||
|
Second, here are two plugins that you will want to download to
|
||||||
|
take advantage of Org-mode-like narrowing and link features that have been built
|
||||||
|
into VimOrganizer:
|
||||||
|
|
||||||
|
5. Christian Brabandt's NarrowRegion plugin. Find and install it from here:
|
||||||
|
http://www.vim.org/scripts/script.php?script_id=3075
|
||||||
|
6. The Utl "Universal Text Linking" plugin. Find and install it from here:
|
||||||
|
http://www.vim.org/scripts/script.php?script_id=293
|
||||||
|
|
||||||
|
If you are running on Windows another plugin will be useful:
|
||||||
|
|
||||||
|
7. If you're running on Windows then you may want to get Peter Rodding's
|
||||||
|
shell.vim plugin. It's not necessary, but if you have installed
|
||||||
|
it VimOrganizer will use it to ensure that you don't see
|
||||||
|
the annoying Windows command prompt window pop up when VimOrganizer
|
||||||
|
calls out to Emacs/Org-mode.
|
||||||
|
http://www.vim.org/scripts/script.php?script_id=3123
|
||||||
|
|
||||||
|
8. FINALLY, install Emacs. Not necessary for basic outlining, agenda
|
||||||
|
searches, and other basic stuff, but it is necessary to do exports
|
||||||
|
to html and PDF (which you will definitely want) as well as other
|
||||||
|
advanced stuff. Don't be afraid, install is simply and configuration
|
||||||
|
is not hard. Find Emacs here:
|
||||||
|
http://www.gnu.org/software/emacs/
|
||||||
|
|
||||||
|
Vimorg uses a variable, g:org_command_for_emacsclient, to hold the
|
||||||
|
command that will start the emacsclient on your system. If you are
|
||||||
|
not on Linux or OSX you will need to set this explicitly in your
|
||||||
|
vimrc file.
|
||||||
|
|
||||||
|
Also, please note that emacsclient works slightly differently on
|
||||||
|
Windows and Linux/OSX systems. You must manually start
|
||||||
|
Emacs on Linux/OSX or calls to emacsclient will not work. Please see
|
||||||
|
:h vimorg-emacs-setup
|
||||||
|
|
||||||
|
For Emacs you should also install a hook function in the .emacs file,
|
||||||
|
which will automatically make minor conversions when you export and/or
|
||||||
|
open a VimOrganizer .org file in Emacs. You can find the text for that
|
||||||
|
function in the VimOrganizer help file:
|
||||||
|
:h vimorg-orgmode-conversion
|
||||||
|
|
||||||
|
If you're scared of Emacs, don't worry. You don't ever need to edit
|
||||||
|
a document using Emacs. The most you will need to do is open up
|
||||||
|
the .emacs configuration file (in Vim) to make some configuration
|
||||||
|
changes, and that is required only if you're doing more advanced stuff.
|
||||||
|
Having said, that, if there are problems it can sometimes be easiest to
|
||||||
|
open Emacs and diagnose an issue there. Still, you don't ever need
|
||||||
|
to edit a document in Emacs, just think of Emacs as your "application
|
||||||
|
server".
|
||||||
|
|
113
vim_plugins_src/VimOrganizer_v0313/VimOrganizerCheatsheet.org
Normal file
113
vim_plugins_src/VimOrganizer_v0313/VimOrganizerCheatsheet.org
Normal file
|
@ -0,0 +1,113 @@
|
||||||
|
* VimOrganizer CheatSheet
|
||||||
|
** Outline Navigation
|
||||||
|
TAB cycle visibilty of single headline/subtree
|
||||||
|
|
||||||
|
Shift-TAB cycle visibility of entire outline
|
||||||
|
|
||||||
|
,1 show level 1 heads only
|
||||||
|
|
||||||
|
,2 show up to level 2 headings
|
||||||
|
|
||||||
|
...
|
||||||
|
|
||||||
|
,,3 show up to level 3 heads for current heading only
|
||||||
|
|
||||||
|
,,5 show up to level 5 heads for current heading only
|
||||||
|
. . .
|
||||||
|
** Basic Outline Editing
|
||||||
|
Name your file with a '.org' extension and then just start adding
|
||||||
|
headings with asterisk to indicate heading level. NOTE: asterisks must
|
||||||
|
be in the leftmost column and must be separate from heading text by a
|
||||||
|
space. This document is an example showing headings, subheadings,
|
||||||
|
and text underneath each.
|
||||||
|
*** Adding new headlines
|
||||||
|
**** Enter, shift+Enter
|
||||||
|
add another headline of same level
|
||||||
|
<enter> works only in normal mode
|
||||||
|
**** Ctrl+Enter
|
||||||
|
add another headline of lower-level
|
||||||
|
**** Ctrl+Shift+Enter
|
||||||
|
add another headline of higher-level
|
||||||
|
** Time Stamps/Date-time prompt
|
||||||
|
The following commands may be issued anywhere within a headline and will
|
||||||
|
enter or edit the corresponding date for the headline. One date of
|
||||||
|
each type may be defined per headline (i.e, 'deadline', 'scheduled',
|
||||||
|
'closed', and 'regular'. You can enter more dates anywhere you want, but
|
||||||
|
this editing mechanism is currently restricted to dealing with only these
|
||||||
|
"primary" dates.
|
||||||
|
|
||||||
|
enter DEADLINE date for headline ,dd
|
||||||
|
enter SCHEDULED date for headline ,ds
|
||||||
|
enter CLOSED date for headline ,dc
|
||||||
|
enter regular date TIMESTAMP (i.e., no indicator) for headline
|
||||||
|
,dt
|
||||||
|
enter timestamp into text ,dg
|
||||||
|
|
||||||
|
The command-line prompt and calendar that appear when you enter a ,d<x>
|
||||||
|
command operate nearly the same as the date-time prompt in Emacs'
|
||||||
|
Org-mode. A few options are not yet implemented (e.g., the 'w'eek
|
||||||
|
options), but most should work just the same. For excellent documentation
|
||||||
|
on Org-mode's date-time prompt see:
|
||||||
|
:http://orgmode.org/manual/The-date_002ftime-prompt.html#The-date_002ftime-prompt
|
||||||
|
** Agenda Dashboard
|
||||||
|
Type ,ag to bring up the Agenda Dashboard, which allows you to launch
|
||||||
|
some searches.
|
||||||
|
** Set Agenda Files
|
||||||
|
Agenda files are held in a list: g:agenda_files. You can enter values for
|
||||||
|
g:agenda_files in your vimrc, e.g.,
|
||||||
|
|
||||||
|
:let g:agenda_files = ['myfile.org','c:/path/myfile.org']
|
||||||
|
|
||||||
|
You can also use Vimscript to assign multiple files at a time to
|
||||||
|
g:agenda_files. For example, putting the line below in your vimrc would
|
||||||
|
put all .org files in the org_files directory into g:agenda_files:
|
||||||
|
|
||||||
|
:let g:agenda_files = split(glob("~\desktop\org_files\*.org"),"\n")
|
||||||
|
|
||||||
|
User Interface for runtime editing of g:agenda_files:
|
||||||
|
|
||||||
|
There is a also a bare-bones agenda-editing mechanism that works like this:
|
||||||
|
(1) Put your .org working directories in list g:agenda_dirs. Mine is in my
|
||||||
|
vimrc and looks like this:
|
||||||
|
|
||||||
|
:let g:agenda_dirs=["c:/users/herbert/documents/my\ dropbox","c:/users/herbert/desktop/org_Files"]
|
||||||
|
|
||||||
|
(2) Then to edit your agenda files issue this command
|
||||||
|
|
||||||
|
:call EditAgendaFiles()
|
||||||
|
|
||||||
|
This will open a new tab and show your current agenda files along with a list
|
||||||
|
of all org files in your agenda dirs. Simply copy or move lines from the
|
||||||
|
agenda dirs list to the top and when done press :W (that's a capital 'W').
|
||||||
|
Order of agenda files is sometimes important, e.g., it is used when ordering
|
||||||
|
some agenda results.
|
||||||
|
|
||||||
|
** Tags
|
||||||
|
Tags for a file are defined using the SetupTags(<tag-setup-string>) function. There is an
|
||||||
|
example in the project's vimrc file. General structure of the
|
||||||
|
tag-setup-string is: (1) tags followed by the single-key access in parens,
|
||||||
|
(2) brackets (i.e., {} ) around sets of tags that are mutually exclusive.
|
||||||
|
For now you must place the single-key-access parens with character after the
|
||||||
|
tag, no letter is automatically assigned. The tags set up by SetupTags() are
|
||||||
|
used in the menu accessed by ,et .
|
||||||
|
|
||||||
|
edit tags -- ,et
|
||||||
|
view items with tag in agenda -- double-click tag,
|
||||||
|
|
||||||
|
(Note: The 'RunSearch' searches below can all be entered now
|
||||||
|
by accessing Agenda Dashboard (,ag) and pressing 'm')
|
||||||
|
view entries having both tag1 and tag2:
|
||||||
|
:call RunSearch('+tag1+tag2')
|
||||||
|
view entries having tag1 but not tag2:
|
||||||
|
:call RunSearch('+tag1-tag2')
|
||||||
|
view entries having tag1 or tag2:
|
||||||
|
:call RunSearch('+tag1|tag2')
|
||||||
|
view entries having tag1 that are also TODO:
|
||||||
|
:call RunSearch('+TODO+tag1')
|
||||||
|
view entries having tag1 that are also DONE:
|
||||||
|
:call RunSearch('+DONE+tag1')
|
||||||
|
view entries having tag1 that have any todo:
|
||||||
|
:call RunSearch('+ANY_TODO+tag1')
|
||||||
|
|
||||||
|
|
||||||
|
|
175
vim_plugins_src/VimOrganizer_v0313/_vimrc
Normal file
175
vim_plugins_src/VimOrganizer_v0313/_vimrc
Normal file
|
@ -0,0 +1,175 @@
|
||||||
|
" This is an example vimrc that should work for testing purposes.
|
||||||
|
" Integrate the VimOrganizer specific sections into your own
|
||||||
|
" vimrc if you wish to use VimOrganizer on a regular basis. . .
|
||||||
|
|
||||||
|
"===================================================================
|
||||||
|
" THE NECESSARY STUFF"
|
||||||
|
" THe three lines below are necessary for VimOrganizer to work right
|
||||||
|
" =================================================================
|
||||||
|
filetype plugin indent on
|
||||||
|
" and then put these lines in vimrc somewhere after the line above
|
||||||
|
au! BufRead,BufWrite,BufWritePost,BufNewFile *.org
|
||||||
|
au BufEnter *.org call org#SetOrgFileType()
|
||||||
|
|
||||||
|
"==============================================================
|
||||||
|
" THE UNNECESSARY STUFF"
|
||||||
|
"=============================================================
|
||||||
|
" Everything below here is a customization. None are needed.
|
||||||
|
"============================================================
|
||||||
|
|
||||||
|
" vars below are used to define default Todo list and
|
||||||
|
" default Tag list. Both of these can also be defined
|
||||||
|
" on a document-specific basis by config lines in a file.
|
||||||
|
" See :h vimorg-todo-metadata and/or :h vimorg-tag-metadata
|
||||||
|
" 'TODO | DONE' is the default,so not really necessary to define it at all
|
||||||
|
let g:org_todo_setup='TODO | DONE'
|
||||||
|
" OR, e.g.,:
|
||||||
|
"let g:org_todo_setup='TODO NEXT STARTED | DONE CANCELED'
|
||||||
|
|
||||||
|
" include a tags setup string if you want:
|
||||||
|
let g:org_tags_alist='{@home(h) @work(w) @tennisclub(t)} {easy(e) hard(d)} {computer(c) phone(p)}'
|
||||||
|
"
|
||||||
|
" g:org_agenda_dirs specify directories that, along with
|
||||||
|
" their subtrees, are searched for list of .org files when
|
||||||
|
" accessing EditAgendaFiles(). Specify your own here, otherwise
|
||||||
|
" default will be for g:org_agenda_dirs to hold single
|
||||||
|
" directory which is directory of the first .org file opened
|
||||||
|
" in current Vim instance:
|
||||||
|
" Below is line I use in my Windows install:
|
||||||
|
" NOTE: case sensitive even on windows.
|
||||||
|
let g:org_agenda_select_dirs=["~/desktop/org_files"]
|
||||||
|
let g:agenda_files = split(glob("~/desktop/org_files/org-mod*.org"),"\n")
|
||||||
|
|
||||||
|
" ---------------------
|
||||||
|
" Emacs setup
|
||||||
|
" --------------------
|
||||||
|
" To use Emacs you will need to define the client. On
|
||||||
|
" Linux/OSX this is typically simple, just:
|
||||||
|
"let g:org_command_for_emacsclient = 'emacsclient'
|
||||||
|
"
|
||||||
|
"On Windows it is more complicated, and probably involves creating
|
||||||
|
" a 'soft link' to the emacsclient executable (which is 'emacsclientw')
|
||||||
|
" See :h vimorg-emacs-setup
|
||||||
|
"let g:org_command_for_emacsclient = 'c:\users\herbert\emacsclientw.exe'
|
||||||
|
|
||||||
|
" ---------------------
|
||||||
|
" Custom Agenda Searches
|
||||||
|
" --------------------
|
||||||
|
" the assignment to g:org_custom_searches below defines searches that a
|
||||||
|
" a user can then easily access from the Org menu or the Agenda Dashboard.
|
||||||
|
" (Still need to add help on how to define them, assignment below
|
||||||
|
" is hopefully illustrative for now. . . . )
|
||||||
|
let g:org_custom_searches = [
|
||||||
|
\ { 'name':"Next week's agenda", 'type':'agenda',
|
||||||
|
\ 'agenda_date':'+1w','agenda_duration':'w'}
|
||||||
|
\, { 'name':"Next week's TODOS", 'type':'agenda',
|
||||||
|
\ 'agenda_date':'+1w','agenda_duration':'w','spec':'+UNFINISHED_TODOS'}
|
||||||
|
\, { 'name':'Home tags', 'type':'heading_list', 'spec':'+HOME'}
|
||||||
|
\, { 'name':'Home tags', 'type':'sparse_tree', 'spec':'+HOME'}
|
||||||
|
\ ]
|
||||||
|
|
||||||
|
" --------------------------------
|
||||||
|
" Custom colors
|
||||||
|
" --------------------------------"
|
||||||
|
" OrgCustomColors() allows a user to set highlighting for particular items
|
||||||
|
function! OrgCustomColors()
|
||||||
|
" various text item "highlightings" are below
|
||||||
|
" these are the defaults. Uncomment and change a line if you
|
||||||
|
" want different highlighting for the element
|
||||||
|
"
|
||||||
|
" below are defaults for any TODOS you define. TODOS that
|
||||||
|
" come before the | in a definition will use 'NOTDONETODO'
|
||||||
|
" and those that come after are DONETODO
|
||||||
|
"hi! DONETODO guifg=green ctermfg=green
|
||||||
|
"hi! NOTDONETODO guifg=red ctermfg=lightred
|
||||||
|
|
||||||
|
" heading level highlighting is done in pairs, one for the
|
||||||
|
" heading when unfoled and one for folded. Default is to make
|
||||||
|
" them the same except for the folded version being bold:
|
||||||
|
" assign OL1 pair for level 1, OL2 pair for level 2, etc.
|
||||||
|
"hi! OL1 guifg=somecolor guibg=somecolor
|
||||||
|
"hi! OL1Folded guifg=somecolor guibg=somecolor gui=bold
|
||||||
|
|
||||||
|
|
||||||
|
" tags are lines below headings that have :colon:separated:tags:
|
||||||
|
"hi! Org_Tag guifg=lightgreen ctermfg=blue
|
||||||
|
|
||||||
|
" lines that begin with '#+' in column 0 are config lines
|
||||||
|
"hi! Org_Config_Line guifg=darkgray ctermfg=magenta
|
||||||
|
|
||||||
|
"drawers are :PROPERTIES: and :LOGBOOK: lines and their associated
|
||||||
|
" :END: lines
|
||||||
|
"hi! Org_Drawer guifg=pink ctermfg=magenta
|
||||||
|
"hi! Org_Drawer_Folded guifg=pink ctermfg=magenta gui=bold cterm=bold
|
||||||
|
|
||||||
|
" this applies to value names in :PROPERTIES: blocks
|
||||||
|
"hi! Org_Property_Value guifg=pink ctermfg=magenta
|
||||||
|
|
||||||
|
" three lines below apply to different kinds of blocks
|
||||||
|
"hi! Org_Block guifg=#555555 ctermfg=magenta
|
||||||
|
"hi! Org_Src_Block guifg=#555555 ctermfg=magenta
|
||||||
|
"hi! Org_Table guifg=#888888 guibg=#333333 ctermfg=magenta
|
||||||
|
|
||||||
|
" dates are date specs between angle brackets (<>) or square brackets ([])
|
||||||
|
"hi! Org_Date guifg=magenta ctermfg=magenta gui=underline cterm=underline
|
||||||
|
|
||||||
|
" Org_Star is used to "hide" initial asterisks in a heading
|
||||||
|
"hi! Org_Star guifg=#444444 ctermfg=darkgray
|
||||||
|
|
||||||
|
"hi! Props guifg=#ffa0a0 ctermfg=gray
|
||||||
|
|
||||||
|
" bold, itals, underline, and code are highlights applied
|
||||||
|
" to character formatting
|
||||||
|
"hi! Org_Code guifg=darkgray gui=bold ctermfg=14
|
||||||
|
"hi! Org_Itals gui=italic guifg=#aaaaaa ctermfg=lightgray
|
||||||
|
"hi! Org_Bold gui=bold guifg=#aaaaaa ctermfg=lightgray
|
||||||
|
"hi! Org_Underline gui=underline guifg=#aaaaaa ctermfg=lightgray
|
||||||
|
"hi! Org_Lnumber guifg=#999999 ctermfg=gray
|
||||||
|
|
||||||
|
" these lines apply to links: [[link]], and [[link][link desc]]
|
||||||
|
"if has("conceal")
|
||||||
|
" hi! default linkends guifg=blue ctermfg=blue
|
||||||
|
"endif
|
||||||
|
"hi! Org_Full_Link guifg=cyan gui=underline ctermfg=lightblue cterm=underline
|
||||||
|
"hi! Org_Half_Link guifg=cyan gui=underline ctermfg=lightblue cterm=underline
|
||||||
|
|
||||||
|
" applies to the Heading line that can be displayed in column view
|
||||||
|
"highlight OrgColumnHeadings guibg=#444444 guifg=#aaaaaa gui=underline
|
||||||
|
|
||||||
|
" Use g:org_todo_custom_highlights to set up highlighting for individual
|
||||||
|
" TODO items. Without this all todos that designate an uninished state
|
||||||
|
" will be highlighted using NOTDONETODO highlight (see above)
|
||||||
|
" and all todos that designate a finished state will be highlighted using
|
||||||
|
" the DONETODO highlight (see above).
|
||||||
|
let g:org_todo_custom_highlights =
|
||||||
|
\ { 'NEXT': { 'guifg':'#888888', 'guibg':'#222222',
|
||||||
|
\ 'ctermfg':'gray', 'ctermbg':'darkgray'},
|
||||||
|
\ 'WAITING': { 'guifg':'#aa3388',
|
||||||
|
\ 'ctermfg':'red' } }
|
||||||
|
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" below are two examples of Org-mode "hook" functions
|
||||||
|
" These present opportunities for end-user customization
|
||||||
|
" of how VimOrganizer works. For more info see the
|
||||||
|
" documentation for hooks in Emacs' Org-mode documentation:
|
||||||
|
" http://orgmode.org/worg/org-configs/org-hooks.php#sec-1_40
|
||||||
|
"
|
||||||
|
" These two hooks are currently the only ones enabled in
|
||||||
|
" the VimOrganizer codebase, but they are easy to add so if
|
||||||
|
" there's a particular hook you want go ahead and request it
|
||||||
|
" or look for where these hooks are implemented in
|
||||||
|
" /ftplugin/org.vim and use them as example for placing your
|
||||||
|
" own hooks in VimOrganizer:
|
||||||
|
function! Org_property_changed_functions(line,key, val)
|
||||||
|
"call confirm("prop changed: ".a:line."--key:".a:key." val:".a:val)
|
||||||
|
endfunction
|
||||||
|
function! Org_after_todo_state_change_hook(line,state1, state2)
|
||||||
|
"call confirm("changed: ".a:line."--key:".a:state1." val:".a:state2)
|
||||||
|
"call OrgConfirmDrawer("LOGBOOK")
|
||||||
|
"let str = ": - State: " . org#Pad(a:state2,10) . " from: " . Pad(a:state1,10) .
|
||||||
|
" \ ' [' . org#Timestamp() . ']'
|
||||||
|
"call append(line("."), repeat(' ',len(matchstr(getline(line(".")),'^\s*'))) . str)
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
|
172
vim_plugins_src/VimOrganizer_v0313/autoload/calutil.vim
Normal file
172
vim_plugins_src/VimOrganizer_v0313/autoload/calutil.vim
Normal file
|
@ -0,0 +1,172 @@
|
||||||
|
" calutil.vim: some calendar utilities
|
||||||
|
" Author: Charles E. Campbell, Jr.
|
||||||
|
" with modifications by Herbert Sitz for VimOrganizer
|
||||||
|
" Date: Oct 08, 2008
|
||||||
|
" Version: 3b ASTRO-ONLY
|
||||||
|
" ---------------------------------------------------------------------
|
||||||
|
if exists("loaded_calutil")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
let g:loaded_calutil= "v3b"
|
||||||
|
if v:version < 700
|
||||||
|
echohl WarningMsg
|
||||||
|
echo "***warning*** this version of calutil needs vim 7.0"
|
||||||
|
echohl Normal
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
function! calutil#dayname(date)
|
||||||
|
return calutil#DayOfWeek(split(a:date,'-')[0],split(a:date,'-')[1],split(a:date,'-')[2],2)
|
||||||
|
endfunction
|
||||||
|
function! calutil#dow(date)
|
||||||
|
return calutil#DayOfWeek(split(a:date,'-')[0],split(a:date,'-')[1],split(a:date,'-')[2],1)
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! calutil#jul(date)
|
||||||
|
return calutil#Cal2Jul(split(a:date,'-')[0],split(a:date,'-')[1],split(a:date,'-')[2])
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! calutil#cal(julian)
|
||||||
|
return calutil#Jul2Cal(a:julian)
|
||||||
|
endfunction
|
||||||
|
" ---------------------------------------------------------------------
|
||||||
|
" DayOfWeek: {{{1
|
||||||
|
" Usage : call calutil#DayOfWeek(y,m,d,[0|1|2])
|
||||||
|
" g:CalUtilDayOfWeek: if 0-> integer (default)
|
||||||
|
" 1-> 3-letter English abbreviation for name of day
|
||||||
|
" 2-> English name of day
|
||||||
|
" Returns
|
||||||
|
" g:CalUtilDayOfWeek
|
||||||
|
" ---------
|
||||||
|
" 1 : 0 1 2 3 4 5 6
|
||||||
|
" 2 : Mon Tue Wed Thu Fri Sat Sun
|
||||||
|
" 3 : Monday Tuesday Wednesday Thursday Friday Saturday Sunday
|
||||||
|
fun! calutil#DayOfWeek(y,m,d,...)
|
||||||
|
if a:0 > 0
|
||||||
|
let g:CalUtilDayOfWeek= a:1
|
||||||
|
endif
|
||||||
|
|
||||||
|
let z = calutil#Cal2Jul(a:y,a:m,a:d)
|
||||||
|
if z >= 0
|
||||||
|
let z= z%7
|
||||||
|
else
|
||||||
|
let z= 7 - (-z%7)
|
||||||
|
endif
|
||||||
|
|
||||||
|
if exists("g:CalUtilDayOfWeek")
|
||||||
|
if g:CalUtilDayOfWeek == 2
|
||||||
|
let dow0="Mon"
|
||||||
|
let dow1="Tue"
|
||||||
|
let dow2="Wed"
|
||||||
|
let dow3="Thu"
|
||||||
|
let dow4="Fri"
|
||||||
|
let dow5="Sat"
|
||||||
|
let dow6="Sun"
|
||||||
|
return dow{z}
|
||||||
|
elseif g:CalUtilDayOfWeek == 3
|
||||||
|
let dow0="Monday"
|
||||||
|
let dow1="Tuesday"
|
||||||
|
let dow2="Wednesday"
|
||||||
|
let dow3="Thursday"
|
||||||
|
let dow4="Friday"
|
||||||
|
let dow5="Saturday"
|
||||||
|
let dow6="Sunday"
|
||||||
|
return dow{z}
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
return z
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" ---------------------------------------------------------------------
|
||||||
|
" calutil#Cal2Jul: convert a (after 9/14/1752) Gregorian calendar date to Julian day {{{1
|
||||||
|
" (on,before " ) Julian calendar date to Julian day
|
||||||
|
" (proleptic)
|
||||||
|
fun! calutil#Cal2Jul(y,m,d)
|
||||||
|
let year = a:y
|
||||||
|
let month= a:m
|
||||||
|
let day = a:d
|
||||||
|
|
||||||
|
" there is no year zero
|
||||||
|
if year == 0
|
||||||
|
let year= -1
|
||||||
|
elseif year < 0
|
||||||
|
let year= year + 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
let julday= day - 32075 +
|
||||||
|
\ 1461*(year + 4800 + (month - 14)/12)/4 +
|
||||||
|
\ 367*(month - 2 - ((month - 14)/12)*12)/12 -
|
||||||
|
\ 3*((year + 4900 + (month - 14)/12)/100)/4
|
||||||
|
|
||||||
|
" 2361221 == Sep 2, 1752, which was followed immediately by
|
||||||
|
" Sep 14, 1752 (in England). Various countries
|
||||||
|
" adopted the Gregorian calendar at different times.
|
||||||
|
if julday <= 2361221
|
||||||
|
let a = (14-month)/12
|
||||||
|
let y = year + 4800 - a
|
||||||
|
let m = month + 12*a - 3
|
||||||
|
let julday = day + (153*m + 2)/5 + y*365 + y/4 - 32083
|
||||||
|
endif
|
||||||
|
return julday
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" ---------------------------------------------------------------------
|
||||||
|
" calutil#Jul2Cal: convert a Julian day to a date: {{{1
|
||||||
|
" Default year/month/day
|
||||||
|
" julday,1 julday,"ymd" year/month/day
|
||||||
|
" julday,2 julday,"mdy" month/day/year
|
||||||
|
" julday,3 julday,"dmy" day/month/year
|
||||||
|
fun! calutil#Jul2Cal(julday,...)
|
||||||
|
let julday= a:julday
|
||||||
|
|
||||||
|
if julday <= 2361221
|
||||||
|
" Proleptic Julian Calendar:
|
||||||
|
" 2361210 == Sep 2, 1752, which was followed immediately by Sep 14, 1752
|
||||||
|
" in England
|
||||||
|
let c = julday + 32082
|
||||||
|
let d = (4*c + 3)/1461
|
||||||
|
let e = c - (1461*d)/4
|
||||||
|
let m = (5*e + 2)/153
|
||||||
|
let day = e - (153*m + 2)/5 + 1
|
||||||
|
let month = m + 3 - 12*(m/10)
|
||||||
|
let year = d - 4800 + m/10
|
||||||
|
if year <= 0
|
||||||
|
" proleptic Julian Calendar: there *is* no year 0!
|
||||||
|
let year= year - 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
else
|
||||||
|
" Gregorian calendar
|
||||||
|
let t1 = julday + 68569
|
||||||
|
let t2 = 4*t1/146097
|
||||||
|
let t1 = t1 - (146097*t2 + 3)/4
|
||||||
|
let yr = 4000*(t1 + 1)/1461001
|
||||||
|
let t1 = t1 - (1461*yr/4 - 31)
|
||||||
|
let mo = 80*t1/2447
|
||||||
|
let day = (t1 - 2447*mo/80)
|
||||||
|
let t1 = mo/11
|
||||||
|
let month = (mo + 2 - 12*t1)
|
||||||
|
let year = (100*(t2 - 49) + yr + t1)
|
||||||
|
endif
|
||||||
|
|
||||||
|
let month = (month<10) ? '0' . month : month
|
||||||
|
let day = (day < 10) ? '0' . day : day
|
||||||
|
|
||||||
|
if a:0 > 0
|
||||||
|
if a:1 == 1 || a:1 =~ "ymd"
|
||||||
|
return year."-".month."/".day
|
||||||
|
elseif a:1 == 2 || a:1 =~ "mdy"
|
||||||
|
return month."-".day."/".year
|
||||||
|
elseif a:1 == 3 || a:1 =~ "dmy"
|
||||||
|
return day."-".month."/".year
|
||||||
|
else
|
||||||
|
return year."-".month."/".day
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
return year."-".month."-".day
|
||||||
|
endif
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" ---------------------------------------------------------------------
|
||||||
|
" vim: ts=4 fdm=marker
|
||||||
|
|
77
vim_plugins_src/VimOrganizer_v0313/autoload/org.vim
Normal file
77
vim_plugins_src/VimOrganizer_v0313/autoload/org.vim
Normal file
|
@ -0,0 +1,77 @@
|
||||||
|
" org.vim - VimOrganizer plugin for Vim
|
||||||
|
" -------------------------------------------------------------
|
||||||
|
" Version: 0.30
|
||||||
|
" Maintainer: Herbert Sitz <hesitz@gmail.com>
|
||||||
|
" Last Change: 2011 Nov 02
|
||||||
|
"
|
||||||
|
" Script: http://www.vim.org/scripts/script.php?script_id=3342
|
||||||
|
" Github page: http://github.com/hsitz/VimOrganizer
|
||||||
|
" Copyright: (c) 2010, 2011 by Herbert Sitz
|
||||||
|
" The VIM LICENSE applies to all files in the
|
||||||
|
" VimOrganizer plugin.
|
||||||
|
" (See the Vim copyright except read "VimOrganizer"
|
||||||
|
" in places where that copyright refers to "Vim".)
|
||||||
|
" http://vimdoc.sourceforge.net/htmldoc/uganda.html#license
|
||||||
|
" No warranty, express or implied.
|
||||||
|
" *** *** Use At-Your-Own-Risk *** ***
|
||||||
|
|
||||||
|
if exists("g:org_autoload_funcs")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
let g:org_autoload_funcs=1
|
||||||
|
|
||||||
|
function! org#SetOrgFileType()
|
||||||
|
"if expand("%:e") == 'org'
|
||||||
|
if &filetype != 'org'
|
||||||
|
execute "set filetype=org"
|
||||||
|
|
||||||
|
" if !exists('g:org_todo_setup')
|
||||||
|
" let g:org_todo_setup = 'TODO | DONE'
|
||||||
|
" endif
|
||||||
|
" if !exists('g:org_tag_setup')
|
||||||
|
" let g:org_tag_setup = '{home(h) work(w)}'
|
||||||
|
" endif
|
||||||
|
"
|
||||||
|
" call OrgProcessConfigLines()
|
||||||
|
" exec "syntax match DONETODO '" . b:v.todoDoneMatch . "' containedin=OL1,OL2,OL3,OL4,OL5,OL6"
|
||||||
|
" exec "syntax match NOTDONETODO '" . b:v.todoNotDoneMatch . "' containedin=OL1,OL2,OL3,OL4,OL5,OL6"
|
||||||
|
|
||||||
|
endif
|
||||||
|
"endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! org#Pad(s,amt)
|
||||||
|
return a:s . repeat(' ',a:amt - len(a:s))
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! org#Timestamp()
|
||||||
|
return strftime("%Y-%m-%d %a %H:%M")
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! org#GetGroupHighlight(group)
|
||||||
|
" this code was copied and modified from code posted on StackOverflow
|
||||||
|
" http://stackoverflow.com/questions/1331213/how-to-modify-existing-highlight-group-in-vim
|
||||||
|
" Redirect the output of the "hi" command into a variable
|
||||||
|
" and find the highlighting
|
||||||
|
redir => GroupDetails
|
||||||
|
exe "silent hi " . a:group
|
||||||
|
redir END
|
||||||
|
|
||||||
|
" Resolve linked groups to find the root highlighting scheme
|
||||||
|
while GroupDetails =~ "links to"
|
||||||
|
let index = stridx(GroupDetails, "links to") + len("links to")
|
||||||
|
let LinkedGroup = strpart(GroupDetails, index + 1)
|
||||||
|
redir => GroupDetails
|
||||||
|
exe "silent hi " . LinkedGroup
|
||||||
|
redir END
|
||||||
|
endwhile
|
||||||
|
|
||||||
|
" Extract the highlighting details (the bit after "xxx")
|
||||||
|
let MatchGroups = matchlist(GroupDetails, '\<xxx\>\s\+\(.*\)')
|
||||||
|
let ExistingHighlight = MatchGroups[1]
|
||||||
|
|
||||||
|
return ExistingHighlight
|
||||||
|
|
||||||
|
endfunction
|
||||||
|
|
525
vim_plugins_src/VimOrganizer_v0313/autoload/org/tbl.vim
Normal file
525
vim_plugins_src/VimOrganizer_v0313/autoload/org/tbl.vim
Normal file
|
@ -0,0 +1,525 @@
|
||||||
|
" vim:tabstop=2:shiftwidth=2:expandtab:foldmethod=marker:textwidth=79
|
||||||
|
" Vimwiki autoload plugin file
|
||||||
|
" Desc: Tables
|
||||||
|
" | Easily | manageable | text | tables | ! |
|
||||||
|
" |--------+------------+-------+--------+---------|
|
||||||
|
" | Have | fun! | Drink | tea | Period. |
|
||||||
|
"
|
||||||
|
" Author: Maxim Kim <habamax@gmail.com>
|
||||||
|
" Home: http://code.google.com/p/vimwiki/
|
||||||
|
|
||||||
|
" Load only once {{{
|
||||||
|
if exists("g:loaded_vimwiki_tbl_auto") || &cp
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
let g:loaded_vimwiki_tbl_auto = 1
|
||||||
|
"}}}
|
||||||
|
|
||||||
|
let s:textwidth = &tw
|
||||||
|
|
||||||
|
" Misc functions {{{
|
||||||
|
function! s:wide_len(str) "{{{
|
||||||
|
" vim73 has new function that gives correct string width.
|
||||||
|
if exists("*strdisplaywidth")
|
||||||
|
return strdisplaywidth(a:str)
|
||||||
|
endif
|
||||||
|
|
||||||
|
" get str display width in vim ver < 7.2
|
||||||
|
if !g:vimwiki_CJK_length
|
||||||
|
let ret = strlen(substitute(a:str, '.', 'x', 'g'))
|
||||||
|
else
|
||||||
|
let savemodified = &modified
|
||||||
|
let save_cursor = getpos('.')
|
||||||
|
exe "norm! o\<esc>"
|
||||||
|
call setline(line("."), a:str)
|
||||||
|
let ret = virtcol("$") - 1
|
||||||
|
d
|
||||||
|
call setpos('.', save_cursor)
|
||||||
|
let &modified = savemodified
|
||||||
|
endif
|
||||||
|
return ret
|
||||||
|
endfunction "}}}
|
||||||
|
|
||||||
|
function! s:is_table(line) "{{{
|
||||||
|
return a:line =~ '^\s*\%(|[^|]\+\)\+|\s*$' || s:is_separator(a:line)
|
||||||
|
endfunction "}}}
|
||||||
|
|
||||||
|
function! s:is_separator(line) "{{{
|
||||||
|
return a:line =~ '^\s*[|+]\s*--[-|+]\+'
|
||||||
|
endfunction "}}}
|
||||||
|
|
||||||
|
function! s:is_last_column(lnum, cnum) "{{{
|
||||||
|
return strpart(getline(a:lnum), a:cnum - 1) =~ '^[^|]*|\s*$'
|
||||||
|
endfunction "}}}
|
||||||
|
|
||||||
|
function! s:is_first_column(lnum, cnum) "{{{
|
||||||
|
let line = strpart(getline(a:lnum), 0, a:cnum - 1)
|
||||||
|
return line =~ '^\s*|[^|]*$' || line =~ '^\s*$'
|
||||||
|
endfunction "}}}
|
||||||
|
|
||||||
|
function! s:count_separators_up(lnum) "{{{
|
||||||
|
let lnum = a:lnum - 1
|
||||||
|
while lnum > 1
|
||||||
|
if !s:is_separator(getline(lnum))
|
||||||
|
break
|
||||||
|
endif
|
||||||
|
let lnum -= 1
|
||||||
|
endwhile
|
||||||
|
|
||||||
|
return (a:lnum-lnum)
|
||||||
|
endfunction "}}}
|
||||||
|
|
||||||
|
function! s:count_separators_down(lnum) "{{{
|
||||||
|
let lnum = a:lnum + 1
|
||||||
|
while lnum < line('$')
|
||||||
|
if !s:is_separator(getline(lnum))
|
||||||
|
break
|
||||||
|
endif
|
||||||
|
let lnum += 1
|
||||||
|
endwhile
|
||||||
|
|
||||||
|
return (lnum-a:lnum)
|
||||||
|
endfunction "}}}
|
||||||
|
|
||||||
|
function! s:create_empty_row(cols) "{{{
|
||||||
|
let first_cell = "| |"
|
||||||
|
let cell = " |"
|
||||||
|
let row = first_cell
|
||||||
|
|
||||||
|
for c in range(a:cols - 1)
|
||||||
|
let row .= cell
|
||||||
|
endfor
|
||||||
|
|
||||||
|
return row
|
||||||
|
endfunction "}}}
|
||||||
|
|
||||||
|
function! s:create_row_sep(cols) "{{{
|
||||||
|
let first_cell = "|---+"
|
||||||
|
let cell = "---+"
|
||||||
|
let last_cell = "---|"
|
||||||
|
|
||||||
|
if a:cols < 2
|
||||||
|
return "|---|"
|
||||||
|
endif
|
||||||
|
|
||||||
|
let row = first_cell
|
||||||
|
|
||||||
|
for c in range(a:cols - 2)
|
||||||
|
let row .= cell
|
||||||
|
endfor
|
||||||
|
|
||||||
|
let row .= last_cell
|
||||||
|
|
||||||
|
return row
|
||||||
|
endfunction "}}}
|
||||||
|
|
||||||
|
function! s:get_values(line) "{{{
|
||||||
|
return split(a:line, '\s*|\s*', 1)[1:-2]
|
||||||
|
endfunction "}}}
|
||||||
|
|
||||||
|
function! s:col_count(lnum) "{{{
|
||||||
|
let line = getline(a:lnum)
|
||||||
|
if !s:is_separator(line)
|
||||||
|
return len(split(line, '\s*|\s*', 1)[1:-2])
|
||||||
|
else
|
||||||
|
return len(split(line, '-+-', 1))
|
||||||
|
endif
|
||||||
|
endfunction "}}}
|
||||||
|
|
||||||
|
function! s:get_indent(lnum) "{{{
|
||||||
|
if !s:is_table(getline(a:lnum))
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
|
||||||
|
let indent = 0
|
||||||
|
|
||||||
|
let lnum = a:lnum - 1
|
||||||
|
while lnum > 1
|
||||||
|
let line = getline(lnum)
|
||||||
|
if !s:is_table(line)
|
||||||
|
let indent = indent(lnum+1)
|
||||||
|
break
|
||||||
|
endif
|
||||||
|
let lnum -= 1
|
||||||
|
endwhile
|
||||||
|
|
||||||
|
return indent
|
||||||
|
endfunction " }}}
|
||||||
|
|
||||||
|
function! s:get_rows(lnum) "{{{
|
||||||
|
if !s:is_table(getline(a:lnum))
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
|
||||||
|
let upper_rows = []
|
||||||
|
let lower_rows = []
|
||||||
|
|
||||||
|
let lnum = a:lnum - 1
|
||||||
|
while lnum > 1
|
||||||
|
let line = getline(lnum)
|
||||||
|
if s:is_table(line)
|
||||||
|
call add(upper_rows, [lnum, line])
|
||||||
|
else
|
||||||
|
break
|
||||||
|
endif
|
||||||
|
let lnum -= 1
|
||||||
|
endwhile
|
||||||
|
call reverse(upper_rows)
|
||||||
|
|
||||||
|
let lnum = a:lnum
|
||||||
|
while lnum <= line('$')
|
||||||
|
let line = getline(lnum)
|
||||||
|
if s:is_table(line)
|
||||||
|
call add(lower_rows, [lnum, line])
|
||||||
|
else
|
||||||
|
break
|
||||||
|
endif
|
||||||
|
let lnum += 1
|
||||||
|
endwhile
|
||||||
|
|
||||||
|
return upper_rows + lower_rows
|
||||||
|
endfunction "}}}
|
||||||
|
|
||||||
|
function! s:get_cell_max_lens(lnum) "{{{
|
||||||
|
let max_lens = {}
|
||||||
|
for [lnum, row] in s:get_rows(a:lnum)
|
||||||
|
if s:is_separator(row)
|
||||||
|
continue
|
||||||
|
endif
|
||||||
|
let cells = s:get_values(row)
|
||||||
|
for idx in range(len(cells))
|
||||||
|
let value = cells[idx]
|
||||||
|
if has_key(max_lens, idx)
|
||||||
|
let max_lens[idx] = max([s:wide_len(value), max_lens[idx]])
|
||||||
|
else
|
||||||
|
let max_lens[idx] = s:wide_len(value)
|
||||||
|
endif
|
||||||
|
endfor
|
||||||
|
endfor
|
||||||
|
return max_lens
|
||||||
|
endfunction "}}}
|
||||||
|
|
||||||
|
function! s:get_aligned_rows(lnum, col1, col2) "{{{
|
||||||
|
let max_lens = s:get_cell_max_lens(a:lnum)
|
||||||
|
let rows = []
|
||||||
|
for [lnum, row] in s:get_rows(a:lnum)
|
||||||
|
if s:is_separator(row)
|
||||||
|
let new_row = s:fmt_sep(max_lens, a:col1, a:col2)
|
||||||
|
else
|
||||||
|
let new_row = s:fmt_row(row, max_lens, a:col1, a:col2)
|
||||||
|
endif
|
||||||
|
call add(rows, [lnum, new_row])
|
||||||
|
endfor
|
||||||
|
return rows
|
||||||
|
endfunction "}}}
|
||||||
|
|
||||||
|
" Number of the current column. Starts from 0.
|
||||||
|
function! s:cur_column() "{{{
|
||||||
|
let line = getline('.')
|
||||||
|
if !s:is_table(line)
|
||||||
|
return -1
|
||||||
|
endif
|
||||||
|
if s:is_separator(line)
|
||||||
|
let sep = '[+|]'
|
||||||
|
else
|
||||||
|
let sep = '|'
|
||||||
|
endif
|
||||||
|
|
||||||
|
let curs_pos = col('.')
|
||||||
|
let mpos = match(line, '|', 0)
|
||||||
|
let col = -1
|
||||||
|
while mpos < curs_pos && mpos != -1
|
||||||
|
let mpos = match(line, sep, mpos+1)
|
||||||
|
if mpos != -1
|
||||||
|
let col += 1
|
||||||
|
endif
|
||||||
|
endwhile
|
||||||
|
return col
|
||||||
|
endfunction "}}}
|
||||||
|
|
||||||
|
" }}}
|
||||||
|
|
||||||
|
" Format functions {{{
|
||||||
|
function! s:fmt_cell(cell, max_len) "{{{
|
||||||
|
let cell = ' '.a:cell.' '
|
||||||
|
|
||||||
|
let diff = a:max_len - s:wide_len(a:cell)
|
||||||
|
if diff == 0 && empty(a:cell)
|
||||||
|
let diff = 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
let cell .= repeat(' ', diff)
|
||||||
|
return cell
|
||||||
|
endfunction "}}}
|
||||||
|
|
||||||
|
function! s:fmt_row(line, max_lens, col1, col2) "{{{
|
||||||
|
let new_line = '|'
|
||||||
|
let cells = s:get_values(a:line)
|
||||||
|
for idx in range(len(cells))
|
||||||
|
if idx == a:col1
|
||||||
|
let idx = a:col2
|
||||||
|
elseif idx == a:col2
|
||||||
|
let idx = a:col1
|
||||||
|
endif
|
||||||
|
let value = cells[idx]
|
||||||
|
let new_line .= s:fmt_cell(value, a:max_lens[idx]).'|'
|
||||||
|
endfor
|
||||||
|
|
||||||
|
let idx = len(cells)
|
||||||
|
while idx < len(a:max_lens)
|
||||||
|
let new_line .= s:fmt_cell('', a:max_lens[idx]).'|'
|
||||||
|
let idx += 1
|
||||||
|
endwhile
|
||||||
|
return new_line
|
||||||
|
endfunction "}}}
|
||||||
|
|
||||||
|
function! s:fmt_cell_sep(max_len) "{{{
|
||||||
|
if a:max_len == 0
|
||||||
|
return repeat('-', 3)
|
||||||
|
else
|
||||||
|
return repeat('-', a:max_len+2)
|
||||||
|
endif
|
||||||
|
endfunction "}}}
|
||||||
|
|
||||||
|
function! s:fmt_sep(max_lens, col1, col2) "{{{
|
||||||
|
let sep = '|'
|
||||||
|
for idx in range(len(a:max_lens))
|
||||||
|
if idx == a:col1
|
||||||
|
let idx = a:col2
|
||||||
|
elseif idx == a:col2
|
||||||
|
let idx = a:col1
|
||||||
|
endif
|
||||||
|
let sep .= s:fmt_cell_sep(a:max_lens[idx]).'+'
|
||||||
|
endfor
|
||||||
|
let sep = substitute(sep, '+$', '|', '')
|
||||||
|
return sep
|
||||||
|
endfunction "}}}
|
||||||
|
"}}}
|
||||||
|
|
||||||
|
" Keyboard functions "{{{
|
||||||
|
function! s:kbd_create_new_row(cols, goto_first) "{{{
|
||||||
|
let cmd = "\<ESC>o".s:create_empty_row(a:cols)
|
||||||
|
let cmd .= "\<ESC>:call org#tbl#format(line('.'))\<CR>"
|
||||||
|
if a:goto_first
|
||||||
|
let cmd .= "\<ESC>0:call search('|', 'c', line('.'))\<CR>la"
|
||||||
|
else
|
||||||
|
let cmd .= "0".(col('.')-1)."lT|a"
|
||||||
|
endif
|
||||||
|
return cmd
|
||||||
|
endfunction "}}}
|
||||||
|
|
||||||
|
function! s:kbd_goto_next_row() "{{{
|
||||||
|
let cmd = "\<ESC>jt|T|a"
|
||||||
|
return cmd
|
||||||
|
endfunction "}}}
|
||||||
|
|
||||||
|
function! s:kbd_goto_prev_row() "{{{
|
||||||
|
let cmd = "\<ESC>jt|T|a"
|
||||||
|
return cmd
|
||||||
|
endfunction "}}}
|
||||||
|
|
||||||
|
function! org#tbl#next_col(last)
|
||||||
|
return s:kbd_goto_next_col(a:last)
|
||||||
|
endfunction
|
||||||
|
function! s:kbd_goto_next_col(last) "{{{
|
||||||
|
if a:last
|
||||||
|
let seps = s:count_separators_down(line('.'))
|
||||||
|
if mode() == 'n'
|
||||||
|
let cmd = seps . "j0:call search('|', 'c', line('.'))\<CR>l"
|
||||||
|
else
|
||||||
|
let cmd = "\<ESC>".seps."j0:call search('|', 'c', line('.'))\<CR>la"
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
if mode() == 'n'
|
||||||
|
let cmd = ":call search('|', 'c', line('.'))\<CR>l"
|
||||||
|
else
|
||||||
|
let cmd = "\<ESC>:call search('|', 'c', line('.'))\<CR>la"
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
return cmd
|
||||||
|
endfunction "}}}
|
||||||
|
|
||||||
|
function! org#tbl#prev_col(first)
|
||||||
|
return s:kbd_goto_prev_col(a:first)
|
||||||
|
endfunction
|
||||||
|
function! s:kbd_goto_prev_col(first) "{{{
|
||||||
|
if a:first
|
||||||
|
let seps = s:count_separators_up(line('.'))
|
||||||
|
let cmd = "\<ESC>".seps."k$:call search('|', 'b', line('.'))\<CR>la"
|
||||||
|
else
|
||||||
|
let cmd = "\<ESC>2F|la"
|
||||||
|
endif
|
||||||
|
return cmd
|
||||||
|
endfunction "}}}
|
||||||
|
|
||||||
|
"}}}
|
||||||
|
|
||||||
|
" Global functions {{{
|
||||||
|
function! org#tbl#kbd_cr() "{{{
|
||||||
|
let lnum = line('.')
|
||||||
|
if !s:is_table(getline(lnum))
|
||||||
|
return "\<CR>"
|
||||||
|
endif
|
||||||
|
|
||||||
|
if s:is_separator(getline(lnum+1)) || !s:is_table(getline(lnum+1))
|
||||||
|
let cols = len(s:get_values(getline(lnum)))
|
||||||
|
return s:kbd_create_new_row(cols, 0)
|
||||||
|
else
|
||||||
|
return s:kbd_goto_next_row()
|
||||||
|
endif
|
||||||
|
endfunction "}}}
|
||||||
|
|
||||||
|
function! org#tbl#kbd_tab() "{{{
|
||||||
|
let lnum = line('.')
|
||||||
|
if !s:is_table(getline(lnum))
|
||||||
|
return "\<Tab>"
|
||||||
|
endif
|
||||||
|
|
||||||
|
let last = s:is_last_column(lnum, col('.'))
|
||||||
|
if last && !s:is_table(getline(lnum+1))
|
||||||
|
let cols = len(s:get_values(getline(lnum)))
|
||||||
|
return s:kbd_create_new_row(cols, 1)
|
||||||
|
endif
|
||||||
|
return s:kbd_goto_next_col(last)
|
||||||
|
endfunction "}}}
|
||||||
|
|
||||||
|
function! org#tbl#kbd_shift_tab() "{{{
|
||||||
|
let lnum = line('.')
|
||||||
|
if !s:is_table(getline(lnum))
|
||||||
|
return "\<S-Tab>"
|
||||||
|
endif
|
||||||
|
|
||||||
|
let first = s:is_first_column(lnum, col('.'))
|
||||||
|
if first && !s:is_table(getline(lnum-1))
|
||||||
|
return ""
|
||||||
|
endif
|
||||||
|
return s:kbd_goto_prev_col(first)
|
||||||
|
endfunction "}}}
|
||||||
|
|
||||||
|
function! org#tbl#format(lnum, ...) "{{{
|
||||||
|
let line = getline(a:lnum)
|
||||||
|
if !s:is_table(line)
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
|
||||||
|
if a:0 == 2
|
||||||
|
let col1 = a:1
|
||||||
|
let col2 = a:2
|
||||||
|
else
|
||||||
|
let col1 = 0
|
||||||
|
let col2 = 0
|
||||||
|
endif
|
||||||
|
|
||||||
|
let indent = s:get_indent(a:lnum)
|
||||||
|
|
||||||
|
for [lnum, row] in s:get_aligned_rows(a:lnum, col1, col2)
|
||||||
|
let row = repeat(' ', indent).row
|
||||||
|
call setline(lnum, row)
|
||||||
|
endfor
|
||||||
|
|
||||||
|
let &tw = s:textwidth
|
||||||
|
endfunction "}}}
|
||||||
|
|
||||||
|
function! org#tbl#create(...) "{{{
|
||||||
|
if a:0 > 1
|
||||||
|
let cols = a:1
|
||||||
|
let rows = a:2
|
||||||
|
elseif a:0 == 1
|
||||||
|
let cols = a:1
|
||||||
|
let rows = 2
|
||||||
|
elseif a:0 == 0
|
||||||
|
let cols = 5
|
||||||
|
let rows = 2
|
||||||
|
endif
|
||||||
|
|
||||||
|
if cols < 1
|
||||||
|
let cols = 5
|
||||||
|
endif
|
||||||
|
|
||||||
|
if rows < 1
|
||||||
|
let rows = 2
|
||||||
|
endif
|
||||||
|
|
||||||
|
let lines = []
|
||||||
|
let row = s:create_empty_row(cols)
|
||||||
|
|
||||||
|
call add(lines, row)
|
||||||
|
if rows > 1
|
||||||
|
call add(lines, s:create_row_sep(cols))
|
||||||
|
endif
|
||||||
|
|
||||||
|
for r in range(rows - 1)
|
||||||
|
call add(lines, row)
|
||||||
|
endfor
|
||||||
|
|
||||||
|
call append(line('.'), lines)
|
||||||
|
endfunction "}}}
|
||||||
|
|
||||||
|
function! org#tbl#align_or_cmd(cmd) "{{{
|
||||||
|
if s:is_table(getline('.'))
|
||||||
|
call org#tbl#format(line('.'))
|
||||||
|
else
|
||||||
|
exe 'normal! '.a:cmd
|
||||||
|
endif
|
||||||
|
endfunction "}}}
|
||||||
|
|
||||||
|
function! org#tbl#reset_tw(lnum) "{{{
|
||||||
|
let line = getline(a:lnum)
|
||||||
|
if !s:is_table(line)
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
|
||||||
|
let s:textwidth = &tw
|
||||||
|
let &tw = 0
|
||||||
|
endfunction "}}}
|
||||||
|
|
||||||
|
" TODO: move_column_left and move_column_right are good candidates to be
|
||||||
|
" refactored.
|
||||||
|
function! org#tbl#move_column_left() "{{{
|
||||||
|
if !s:is_table(getline('.'))
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
|
||||||
|
let cur_col = s:cur_column()
|
||||||
|
if cur_col == -1
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
|
||||||
|
if cur_col > 0
|
||||||
|
call org#tbl#format(line('.'), cur_col-1, cur_col)
|
||||||
|
call cursor(line('.'), 1)
|
||||||
|
if !s:is_separator(getline('.'))
|
||||||
|
call search('\%(|[^|]\+\)\{'.(cur_col-1).'}| .', 'eW')
|
||||||
|
else
|
||||||
|
call search('|\%([^+]\++\)\{'.(cur_col-1).'}--', 'eW')
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endfunction "}}}
|
||||||
|
|
||||||
|
function! org#tbl#move_column_right() "{{{
|
||||||
|
if !s:is_table(getline('.'))
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
|
||||||
|
let cur_col = s:cur_column()
|
||||||
|
if cur_col == -1
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
|
||||||
|
if cur_col < s:col_count(line('.'))-1
|
||||||
|
call org#tbl#format(line('.'), cur_col, cur_col+1)
|
||||||
|
call cursor(line('.'), 1)
|
||||||
|
if !s:is_separator(getline('.'))
|
||||||
|
call search('\%(|[^|]\+\)\{'.(cur_col+1).'}| .', 'eW')
|
||||||
|
else
|
||||||
|
call search('|\%([^+]\++\)\{'.(cur_col+1).'}--', 'eW')
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endfunction "}}}
|
||||||
|
|
||||||
|
function! org#tbl#get_rows(lnum) "{{{
|
||||||
|
return s:get_rows(a:lnum)
|
||||||
|
endfunction "}}}
|
||||||
|
|
||||||
|
"}}}
|
||||||
|
|
15
vim_plugins_src/VimOrganizer_v0313/contrib/README.txt
Normal file
15
vim_plugins_src/VimOrganizer_v0313/contrib/README.txt
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
The vim73 patch in this directory does two things:
|
||||||
|
|
||||||
|
1. Enables level-dependent fold highlighting in Vim73.
|
||||||
|
2. Enables separate TODO highlighting in folded headings
|
||||||
|
in VimOrganizer, so TODO's stand out even when a
|
||||||
|
heading is folded.
|
||||||
|
|
||||||
|
The vim72 patch is old and only does (1) above.
|
||||||
|
|
||||||
|
If someone is using a version of Windows and wants to avoid
|
||||||
|
recompiling process you can contact me and I will send you an
|
||||||
|
executable you should be able to use on your system.
|
||||||
|
|
||||||
|
Herbert Sitz
|
||||||
|
hesitz@gmail.com
|
79
vim_plugins_src/VimOrganizer_v0313/contrib/vim72.diff
Normal file
79
vim_plugins_src/VimOrganizer_v0313/contrib/vim72.diff
Normal file
|
@ -0,0 +1,79 @@
|
||||||
|
=== (+2,-1) src/eval.c ===
|
||||||
|
@@ -355,6 +355,7 @@
|
||||||
|
{VV_NAME("operator", VAR_STRING), VV_RO},
|
||||||
|
{VV_NAME("searchforward", VAR_NUMBER), 0},
|
||||||
|
{VV_NAME("oldfiles", VAR_LIST), 0},
|
||||||
|
+ {VV_NAME("foldhighlight", VAR_NUMBER), 0},
|
||||||
|
};
|
||||||
|
|
||||||
|
/* shorthand */
|
||||||
|
=== (+18,-9) src/screen.c ===
|
||||||
|
@@ -2179,9 +2179,17 @@
|
||||||
|
# define RL_MEMSET(p, v, l) for (ri = 0; ri < l; ++ri) \
|
||||||
|
ScreenAttrs[off + (p) + ri] = v
|
||||||
|
#endif
|
||||||
|
+ /*
|
||||||
|
+ * 4. Compose the folded-line string with 'foldtext', if set.
|
||||||
|
+ */
|
||||||
|
+ text = get_foldtext(wp, lnum, lnume, foldinfo, buf);
|
||||||
|
+
|
||||||
|
+ txtcol = col; /* remember where text starts */
|
||||||
|
|
||||||
|
/* Set all attributes of the 'number' column and the text */
|
||||||
|
- RL_MEMSET(col, hl_attr(HLF_FL), W_WIDTH(wp) - col);
|
||||||
|
+ //RL_MEMSET(col, hl_attr(HLF_FL), W_WIDTH(wp) - col);
|
||||||
|
+ RL_MEMSET(col, hl_attr(get_vim_var_nr(VV_FOLDHIGHLIGHT)), W_WIDTH(wp) - col);
|
||||||
|
+
|
||||||
|
|
||||||
|
#ifdef FEAT_SIGNS
|
||||||
|
/* If signs are being displayed, add two spaces. */
|
||||||
|
@@ -2196,10 +2204,11 @@
|
||||||
|
if (wp->w_p_rl)
|
||||||
|
/* the line number isn't reversed */
|
||||||
|
copy_text_attr(off + W_WIDTH(wp) - len - col,
|
||||||
|
- (char_u *)" ", len, hl_attr(HLF_FL));
|
||||||
|
+ (char_u *)" ", len, hl_attr(get_vim_var_nr(VV_FOLDHIGHLIGHT)));
|
||||||
|
+
|
||||||
|
else
|
||||||
|
# endif
|
||||||
|
- copy_text_attr(off + col, (char_u *)" ", len, hl_attr(HLF_FL));
|
||||||
|
+ copy_text_attr(off + col, (char_u *)" ", len, hl_attr(get_vim_var_nr(VV_FOLDHIGHLIGHT)));
|
||||||
|
col += len;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -2222,10 +2231,10 @@
|
||||||
|
if (wp->w_p_rl)
|
||||||
|
/* the line number isn't reversed */
|
||||||
|
copy_text_attr(off + W_WIDTH(wp) - len - col, buf, len,
|
||||||
|
- hl_attr(HLF_FL));
|
||||||
|
+ hl_attr(get_vim_var_nr(VV_FOLDHIGHLIGHT)));
|
||||||
|
else
|
||||||
|
#endif
|
||||||
|
- copy_text_attr(off + col, buf, len, hl_attr(HLF_FL));
|
||||||
|
+ copy_text_attr(off + col, buf, len, hl_attr(get_vim_var_nr(VV_FOLDHIGHLIGHT)));
|
||||||
|
col += len;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -2233,9 +2242,9 @@
|
||||||
|
/*
|
||||||
|
* 4. Compose the folded-line string with 'foldtext', if set.
|
||||||
|
*/
|
||||||
|
- text = get_foldtext(wp, lnum, lnume, foldinfo, buf);
|
||||||
|
-
|
||||||
|
- txtcol = col; /* remember where text starts */
|
||||||
|
+ //text = get_foldtext(wp, lnum, lnume, foldinfo, buf);
|
||||||
|
+// moved up above to heappen earlier h.s.
|
||||||
|
+ // txtcol = col; /* remember where text starts */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 5. move the text to current_ScreenLine. Fill up with "fill_fold".
|
||||||
|
=== (+3,-2) src/vim.h ===
|
||||||
|
@@ -1767,7 +1767,8 @@
|
||||||
|
#define VV_OP 52
|
||||||
|
#define VV_SEARCHFORWARD 53
|
||||||
|
#define VV_OLDFILES 54
|
||||||
|
-#define VV_LEN 55 /* number of v: vars */
|
||||||
|
+#define VV_FOLDHIGHLIGHT 55
|
||||||
|
+#define VV_LEN 56 /* number of v: vars */
|
||||||
|
|
||||||
|
#ifdef FEAT_CLIPBOARD
|
|
@ -0,0 +1,113 @@
|
||||||
|
diff -u ./src/eval.c ./patched_src/eval.c
|
||||||
|
--- ./src/eval.c 2010-08-09 13:12:14.000000000 -0700
|
||||||
|
+++ ./patched_src/eval.c 2011-08-24 12:45:30.990183200 -0700
|
||||||
|
@@ -362,6 +362,8 @@
|
||||||
|
{VV_NAME("operator", VAR_STRING), VV_RO},
|
||||||
|
{VV_NAME("searchforward", VAR_NUMBER), 0},
|
||||||
|
{VV_NAME("oldfiles", VAR_LIST), 0},
|
||||||
|
+ {VV_NAME("foldhighlight", VAR_NUMBER), 0},
|
||||||
|
+ {VV_NAME("todohighlight", VAR_NUMBER), 0},
|
||||||
|
};
|
||||||
|
|
||||||
|
/* shorthand */
|
||||||
|
diff -u ./src/screen.c ./patched_src/screen.c
|
||||||
|
--- ./src/screen.c 2010-08-13 06:21:27.000000000 -0700
|
||||||
|
+++ ./patched_src/screen.c 2011-10-15 04:01:17.947926300 -0700
|
||||||
|
@@ -2214,6 +2214,8 @@
|
||||||
|
* 4. Compose the text
|
||||||
|
* 5. Add the text
|
||||||
|
* 6. set highlighting for the Visual area an other text
|
||||||
|
+ * NOTE: in patch for VimOrganizer step 4, composing text
|
||||||
|
+ * is moved up to happen as part of step 2.
|
||||||
|
*/
|
||||||
|
col = 0;
|
||||||
|
|
||||||
|
@@ -2271,10 +2273,16 @@
|
||||||
|
# define RL_MEMSET(p, v, l) for (ri = 0; ri < l; ++ri) \
|
||||||
|
ScreenAttrs[off + (p) + ri] = v
|
||||||
|
#endif
|
||||||
|
+ /*
|
||||||
|
+ * 4. Compose the folded-line string with 'foldtext', if set.
|
||||||
|
+ */
|
||||||
|
+ text = get_foldtext(wp, lnum, lnume, foldinfo, buf);
|
||||||
|
+
|
||||||
|
+ txtcol = col; /* remember where text starts */
|
||||||
|
+
|
||||||
|
+ /* Set all attributes of the 'number' column and the text */
|
||||||
|
+ RL_MEMSET(col, syn_id2attr(get_vim_var_nr(VV_FOLDHIGHLIGHT)), W_WIDTH(wp) - col);
|
||||||
|
|
||||||
|
- /* Set all attributes of the 'number' or 'relativenumber' column and the
|
||||||
|
- * text */
|
||||||
|
- RL_MEMSET(col, hl_attr(HLF_FL), W_WIDTH(wp) - col);
|
||||||
|
|
||||||
|
#ifdef FEAT_SIGNS
|
||||||
|
/* If signs are being displayed, add two spaces. */
|
||||||
|
@@ -2289,10 +2297,11 @@
|
||||||
|
if (wp->w_p_rl)
|
||||||
|
/* the line number isn't reversed */
|
||||||
|
copy_text_attr(off + W_WIDTH(wp) - len - col,
|
||||||
|
- (char_u *)" ", len, hl_attr(HLF_FL));
|
||||||
|
+ (char_u *)" ", len, hl_attr(HLF_SC));
|
||||||
|
else
|
||||||
|
# endif
|
||||||
|
- copy_text_attr(off + col, (char_u *)" ", len, hl_attr(HLF_FL));
|
||||||
|
+ copy_text_attr(off + col, (char_u *)" ", len, hl_attr(HLF_SC));
|
||||||
|
+
|
||||||
|
col += len;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -2324,20 +2333,35 @@
|
||||||
|
if (wp->w_p_rl)
|
||||||
|
/* the line number isn't reversed */
|
||||||
|
copy_text_attr(off + W_WIDTH(wp) - len - col, buf, len,
|
||||||
|
- hl_attr(HLF_FL));
|
||||||
|
+ hl_attr(HLF_N));
|
||||||
|
+ //syn_id2attr(get_vim_var_nr(VV_FOLDHIGHLIGHT)));
|
||||||
|
+
|
||||||
|
else
|
||||||
|
#endif
|
||||||
|
- copy_text_attr(off + col, buf, len, hl_attr(HLF_FL));
|
||||||
|
+ copy_text_attr(off + col, buf, len, hl_attr(HLF_N));
|
||||||
|
+ //copy_text_attr(off + col, buf, len, syn_id2attr(get_vim_var_nr(VV_FOLDHIGHLIGHT)));
|
||||||
|
+
|
||||||
|
col += len;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+ /* now set attributes for vimorganizer todo word in headline, if any */
|
||||||
|
+ /* v:todohighlight is set in user's OrgFoldText() function. . . */
|
||||||
|
+ if (get_vim_var_nr(VV_TODOHIGHLIGHT) > 0 )
|
||||||
|
+ {
|
||||||
|
+ int start=0, end;
|
||||||
|
+
|
||||||
|
+ while( *(text + start) == ' ' )
|
||||||
|
+ start++;
|
||||||
|
+ end = start;
|
||||||
|
+ while( *(text + end) != ' ' )
|
||||||
|
+ end++;
|
||||||
|
+ RL_MEMSET(start+col, syn_id2attr(get_vim_var_nr(VV_TODOHIGHLIGHT)), end - start);
|
||||||
|
+ }
|
||||||
|
/*
|
||||||
|
* 4. Compose the folded-line string with 'foldtext', if set.
|
||||||
|
*/
|
||||||
|
- text = get_foldtext(wp, lnum, lnume, foldinfo, buf);
|
||||||
|
-
|
||||||
|
- txtcol = col; /* remember where text starts */
|
||||||
|
+ // moved up above to happen earlier h.s.
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 5. move the text to current_ScreenLine. Fill up with "fill_fold".
|
||||||
|
diff -u ./src/vim.h ./patched_src/vim.h
|
||||||
|
--- ./src/vim.h 2010-07-29 11:46:39.000000000 -0700
|
||||||
|
+++ ./patched_src/vim.h 2011-08-11 14:22:52.525545700 -0700
|
||||||
|
@@ -1842,7 +1842,9 @@
|
||||||
|
#define VV_OP 52
|
||||||
|
#define VV_SEARCHFORWARD 53
|
||||||
|
#define VV_OLDFILES 54
|
||||||
|
-#define VV_LEN 55 /* number of v: vars */
|
||||||
|
+#define VV_FOLDHIGHLIGHT 55
|
||||||
|
+#define VV_TODOHIGHLIGHT 56
|
||||||
|
+#define VV_LEN 57 /* number of v: vars */
|
||||||
|
|
||||||
|
#ifdef FEAT_CLIPBOARD
|
||||||
|
|
1482
vim_plugins_src/VimOrganizer_v0313/doc/vimorg.txt
Normal file
1482
vim_plugins_src/VimOrganizer_v0313/doc/vimorg.txt
Normal file
File diff suppressed because it is too large
Load diff
7462
vim_plugins_src/VimOrganizer_v0313/ftplugin/org.vim
Normal file
7462
vim_plugins_src/VimOrganizer_v0313/ftplugin/org.vim
Normal file
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,39 @@
|
||||||
|
" org.vim - VimOrganizer plugin for Vim
|
||||||
|
" -------------------------------------------------------------
|
||||||
|
" Version: 0.30
|
||||||
|
" Maintainer: Herbert Sitz <hesitz@gmail.com>
|
||||||
|
" Last Change: 2011 Nov 02
|
||||||
|
"
|
||||||
|
" Script: http://www.vim.org/scripts/script.php?script_id=3342
|
||||||
|
" Github page: http://github.com/hsitz/VimOrganizer
|
||||||
|
" Copyright: (c) 2010, 2011 by Herbert Sitz
|
||||||
|
" The VIM LICENSE applies to all files in the
|
||||||
|
" VimOrganizer plugin.
|
||||||
|
" (See the Vim copyright except read "VimOrganizer"
|
||||||
|
" in places where that copyright refers to "Vim".)
|
||||||
|
" http://vimdoc.sourceforge.net/htmldoc/uganda.html#license
|
||||||
|
" No warranty, express or implied.
|
||||||
|
" *** *** Use At-Your-Own-Risk *** ***
|
||||||
|
|
||||||
|
nnoremap <silent> <buffer> <localleader>ag :call OrgAgendaDashboard()<cr>
|
||||||
|
nnoremap <silent> <buffer> <localleader>et :call OrgTagsEdit()<cr>
|
||||||
|
nnoremap <silent> <buffer> <localleader>ci :call OrgClockIn()<cr>
|
||||||
|
nnoremap <silent> <buffer> <localleader>co :call OrgClockOut()<cr>
|
||||||
|
nnoremap <silent> <buffer> <localleader>d :call OrgDateDashboard()<cr>
|
||||||
|
nnoremap <silent> <buffer> <localleader>t :call OrgTodoDashboard()<cr>
|
||||||
|
"nnoremap <silent> <buffer> q :sign unplace * | quit<cr>
|
||||||
|
nnoremap <silent> <buffer> q :call OrgQuitAgenda()<cr>
|
||||||
|
function! OrgQuitAgenda()
|
||||||
|
sign unplace *
|
||||||
|
bw
|
||||||
|
call clearmatches()
|
||||||
|
let b:v.chosen_agenda_heading = 0
|
||||||
|
if bufnr('ColHeadBuffer') > -1
|
||||||
|
"main window has column headings window that
|
||||||
|
"is now showing a blank buffer line, push back up . . .
|
||||||
|
resize 100
|
||||||
|
endif
|
||||||
|
"quit
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
nnoremap <silent> <buffer> <c-tab> :wincmd k<cr>
|
|
@ -0,0 +1,176 @@
|
||||||
|
" org.vim - VimOrganizer plugin for Vim
|
||||||
|
" -------------------------------------------------------------
|
||||||
|
" Version: 0.30
|
||||||
|
" Maintainer: Herbert Sitz <hesitz@gmail.com>
|
||||||
|
" Last Change: 2011 Nov 02
|
||||||
|
"
|
||||||
|
" Script: http://www.vim.org/scripts/script.php?script_id=3342
|
||||||
|
" Github page: http://github.com/hsitz/VimOrganizer
|
||||||
|
" Copyright: (c) 2010, 2011 by Herbert Sitz
|
||||||
|
" The VIM LICENSE applies to all files in the
|
||||||
|
" VimOrganizer plugin.
|
||||||
|
" (See the Vim copyright except read "VimOrganizer"
|
||||||
|
" in places where that copyright refers to "Vim".)
|
||||||
|
" http://vimdoc.sourceforge.net/htmldoc/uganda.html#license
|
||||||
|
" No warranty, express or implied.
|
||||||
|
" *** *** Use At-Your-Own-Risk *** ***
|
||||||
|
"
|
||||||
|
"Section Mappings and Endstuff
|
||||||
|
" below block of 10 or 15 maps are ones collected
|
||||||
|
" from body of doc that weren't getting assigned for docs
|
||||||
|
" oepened after initial org filetype doc
|
||||||
|
nnoremap <silent> <buffer> <tab> :call OrgCycle()<cr>
|
||||||
|
nnoremap <silent> <buffer> <s-tab> :call OrgGlobalCycle()<cr>
|
||||||
|
nnoremap <silent> <buffer> <localleader>ci :call OrgClockIn(line("."))<cr>
|
||||||
|
nnoremap <silent> <buffer> <localleader>co :call OrgClockOut()<cr>
|
||||||
|
"cnoremap <space> <C-\>e(<SID>OrgDateEdit())<CR>
|
||||||
|
" dl is for the date on the current line
|
||||||
|
noremap <buffer> <localleader>x :call OrgExportDashboard()<cr>
|
||||||
|
noremap <buffer> <localleader>d :call OrgDateDashboard()<cr>
|
||||||
|
noremap <buffer> <localleader>b :call OrgTableDashboard()<cr>
|
||||||
|
"noremap <silent> <buffer> <localleader>dg :call OrgGenericDateEdit()<cr>
|
||||||
|
"noremap <silent> <buffer> <localleader>dt :call OrgDateEdit('TIMESTAMP')<cr>
|
||||||
|
"noremap <silent> <buffer> <localleader>dd :call OrgDateEdit('DEADLINE')<cr>
|
||||||
|
"noremap <silent> <buffer> <localleader>dc :call OrgDateEdit('CLOSED')<cr>
|
||||||
|
"noremap <silent> <buffer> <localleader>ds :call OrgDateEdit('SCHEDULED')<cr>
|
||||||
|
noremap <silent> <buffer> <localleader>a* :call OrgRunAgenda(strftime("%Y-%m-%d"),'w,'')<cr>
|
||||||
|
noremap <silent> <buffer> <localleader>aa :call OrgRunAgenda(strftime("%Y-%m-%d"),'w,'+ANY_TODO')<cr>
|
||||||
|
noremap <silent> <buffer> <localleader>at :call OrgRunAgenda(strftime("%Y-%m-%d"),'w,'+UNFINISHED_TODOS')<cr>
|
||||||
|
noremap <silent> <buffer> <localleader>ad :call OrgRunAgenda(strftime("%Y-%m-%d"),'w,'+FINISHED_TODOS')<cr>
|
||||||
|
noremap <silent> <buffer> <localleader>ag :call OrgAgendaDashboard()<cr>
|
||||||
|
noremap <silent> <buffer> <localleader>ac :call OrgCustomSearchMenu()<cr>
|
||||||
|
"command! -nargs=0 Agenda :call OrgAgendaDashboard()
|
||||||
|
nnoremap <silent> <buffer> <s-up> :call OrgDateInc(1)<CR>
|
||||||
|
nnoremap <silent> <buffer> <s-down> :call OrgDateInc(-1)<CR>
|
||||||
|
nnoremap <silent> <buffer> <2-LeftMouse> :call OrgMouseDate()<CR>
|
||||||
|
nnoremap <localleader>pl :call s:MyPopup()<cr>
|
||||||
|
inoremap <expr> <Esc> pumvisible() ? "\<C-e>" : "\<Esc>"
|
||||||
|
inoremap <expr> <CR> pumvisible() ? "\<C-y>" : "\<CR>"
|
||||||
|
inoremap <expr> <Down> pumvisible() ? "\<C-n>" : "\<Down>"
|
||||||
|
inoremap <expr> <Up> pumvisible() ? "\<C-p>" : "\<Up>"
|
||||||
|
inoremap <expr> <PageDown> pumvisible() ? "\<PageDown>\<C-p>\<C-n>" : "\<PageDown>"
|
||||||
|
inoremap <expr> <PageUp> pumvisible() ? "\<PageUp>\<C-p>\<C-n>" : "\<PageUp>"
|
||||||
|
"map <silent> <localleader>b :call ShowBottomCal()<cr>
|
||||||
|
|
||||||
|
nnoremap <silent> <buffer> <localleader>et :call OrgTagsEdit()<cr>
|
||||||
|
|
||||||
|
" clear search matching
|
||||||
|
nnoremap <silent> <buffer> <localleader>cs :let @/=''<cr>
|
||||||
|
|
||||||
|
noremap <buffer> <localleader>r :call OrgRefileDashboard()<cr>
|
||||||
|
"noremap <silent> <buffer> <localleader>rh :call OrgRefile(line('.'))<cr>
|
||||||
|
"noremap <silent> <buffer> <localleader>rj :call OrgJumpToRefilePoint()<cr>
|
||||||
|
"noremap <silent> <buffer> <localleader>rx :call OrgJumpToRefilePointPersistent()<cr>
|
||||||
|
"noremap <silent> <buffer> <localleader>rs :call OrgSetRefilePoint()<cr>
|
||||||
|
"noremap <silent> <buffer> <localleader>rp :call OrgRefileToPermPoint(line('.'))<cr>
|
||||||
|
noremap <silent> <buffer> <localleader>v :silent call OrgEval()<cr>
|
||||||
|
|
||||||
|
noremap <buffer> <C-K> <C-]>
|
||||||
|
noremap <buffer> <C-N> <C-T>
|
||||||
|
noremap <silent> <buffer> <localleader>0 :call OrgExpandWithoutText(99999)<CR>
|
||||||
|
noremap <silent> <buffer> <localleader>9 :call OrgExpandWithoutText(9)<CR>
|
||||||
|
noremap <silent> <buffer> <localleader>8 :call OrgExpandWithoutText(8)<CR>
|
||||||
|
noremap <silent> <buffer> <localleader>7 :call OrgExpandWithoutText(7)<CR>
|
||||||
|
noremap <silent> <buffer> <localleader>6 :call OrgExpandWithoutText(6)<CR>
|
||||||
|
noremap <silent> <buffer> <localleader>5 :call OrgExpandWithoutText(5)<CR>
|
||||||
|
noremap <silent> <buffer> <localleader>4 :call OrgExpandWithoutText(4)<CR>
|
||||||
|
noremap <silent> <buffer> <localleader>3 :call OrgExpandWithoutText(3)<CR>
|
||||||
|
noremap <silent> <buffer> <localleader>2 :call OrgExpandWithoutText(2)<CR>
|
||||||
|
noremap <silent> <buffer> <localleader>1 :call OrgExpandWithoutText(1)<CR>
|
||||||
|
noremap <silent> <buffer> <localleader><space> :call OrgExpandWithoutText(1)<CR>
|
||||||
|
"noremap <silent> <buffer> <localleader>/ :let @/='exec call OrgExpandWithoutText(1)<CR>
|
||||||
|
"noremap <silent> <buffer> <localleader>/ :let @a='/^\*\{1,' . &foldlevel . '\} .*'|call LevSearch()<cr>
|
||||||
|
nnoremap <buffer> <expr> <localleader>/ '/^\*\{1,' . &foldlevel . '\} .*'
|
||||||
|
nnoremap <buffer> <expr> <localleader>? '?^\*\{1,' . &foldlevel . '\} .*'
|
||||||
|
|
||||||
|
" set reasonable max limit of 12 for '0' command below, because it iterates
|
||||||
|
" each for each level, just assume 12 is max. . .
|
||||||
|
noremap <silent> <buffer> <localleader>,0 :call OrgShowSubs(12,0)<CR>
|
||||||
|
noremap <silent> <buffer> <localleader>,9 :call OrgShowSubs(9,0)<CR>
|
||||||
|
noremap <silent> <buffer> <localleader>,8 :call OrgShowSubs(8,0)<CR>
|
||||||
|
noremap <silent> <buffer> <localleader>,7 :call OrgShowSubs(7,0)<CR>
|
||||||
|
noremap <silent> <buffer> <localleader>,6 :call OrgShowSubs(6,0)<CR>
|
||||||
|
noremap <silent> <buffer> <localleader>,5 :call OrgShowSubs(5,0)<CR>
|
||||||
|
noremap <silent> <buffer> <localleader>,4 :call OrgShowSubs(4,0)<CR>
|
||||||
|
noremap <silent> <buffer> <localleader>,3 :call OrgShowSubs(3,0)<CR>
|
||||||
|
noremap <silent> <buffer> <localleader>,2 :call OrgShowSubs(2,0)<CR>
|
||||||
|
noremap <silent> <buffer> <localleader>,1 :call OrgShowSubs(1,0)<CR>
|
||||||
|
noremap <silent> <buffer> <localleader>,; :call OrgShowSubs(1,0)<CR>
|
||||||
|
|
||||||
|
|
||||||
|
"nnoremap <silent> <buffer> <localleader>no :call NarrowOutline(line('.'))<cr>
|
||||||
|
"nnoremap <silent> <buffer> <localleader>ns :call NarrowOutline(line('.'))<cr>
|
||||||
|
"nnoremap <silent> <buffer> <localleader>nc :call NarrowCodeBlock(line('.'))<cr>
|
||||||
|
nnoremap <silent> <buffer> <localleader>na :call NarrowCodeBlock(line('.'))<cr>
|
||||||
|
nnoremap <silent> <buffer> <localleader>m :call OrgColumnsDashboard()<cr>
|
||||||
|
" ----------------------------------------
|
||||||
|
" table commands
|
||||||
|
au InsertEnter *.org :call org#tbl#reset_tw(line("."))
|
||||||
|
au InsertLeave *.org :call org#tbl#format(line("."))
|
||||||
|
command! -buffer -nargs=* OrgTable call org#tbl#create(<f-args>)
|
||||||
|
"nnoremap <silent> <buffer> <localleader>bc :call org#tbl#create()<cr>
|
||||||
|
command! -buffer OrgTableAlignQ call org#tbl#align_or_cmd('gqq')
|
||||||
|
command! -buffer OrgTableAlignW call org#tbl#align_or_cmd('gww')
|
||||||
|
command! -buffer OrgTableMoveColumnLeft call org#tbl#move_column_left()
|
||||||
|
"nnoremap <silent> <buffer> <localleader>bl :call org#tbl#move_column_left()<cr>
|
||||||
|
command! -buffer OrgTableMoveColumnRight call org#tbl#move_column_right()
|
||||||
|
"nnoremap <silent> <buffer> <localleader>br :call org#tbl#move_column_right()<cr>
|
||||||
|
|
||||||
|
" table function mappings
|
||||||
|
inoremap <buffer> <expr> <CR> org#tbl#kbd_cr()
|
||||||
|
inoremap <expr> <buffer> <Tab> org#tbl#kbd_tab()
|
||||||
|
inoremap <expr> <buffer> <S-Tab> org#tbl#kbd_shift_tab()
|
||||||
|
nnoremap <buffer> gqq :OrgTableAlignQ<CR>
|
||||||
|
nnoremap <buffer> gww :OrgTableAlignW<CR>
|
||||||
|
"nnoremap <silent><buffer> <A-Left> <Plug>OrgTableMoveColumnLeft
|
||||||
|
nnoremap <silent><script><buffer>
|
||||||
|
\ <Plug>OrgTableMoveColumnLeft :OrgTableMoveColumnLeft<CR>
|
||||||
|
"nnoremap <silent><buffer> <A-Right> <Plug>OrgTableMoveColumnRight
|
||||||
|
nnoremap <silent><script><buffer>
|
||||||
|
\ <Plug>OrgTableMoveColumnRight :OrgTableMoveColumnRight<CR>
|
||||||
|
" -------------------------------------
|
||||||
|
|
||||||
|
imap <silent> <buffer> <s-c-CR> <c-r>=OrgNewHead('levelup',1)<CR>
|
||||||
|
imap <silent> <buffer> <c-CR> <c-r>=OrgNewHead('leveldown',1)<CR>
|
||||||
|
imap <silent> <buffer> <s-CR> <c-r>=OrgNewHead('same',1)<CR>
|
||||||
|
nnoremap <silent> <buffer> <s-c-CR> :call OrgNewHead('levelup')<CR>
|
||||||
|
nnoremap <silent> <buffer> <c-CR> :call OrgNewHead('leveldown')<CR>
|
||||||
|
nnoremap <silent> <buffer> <CR> :call OrgEnterFunc()<CR>
|
||||||
|
nnoremap <silent> <buffer> <c-left> :call OrgShowLess(line("."))<CR>
|
||||||
|
nnoremap <silent> <buffer> <c-right> :call OrgShowMore(line("."))<CR>
|
||||||
|
nnoremap <silent> <buffer> <c-a-left> :call OrgMoveLevel(line("."),'left')<CR>
|
||||||
|
nnoremap <silent> <buffer> <c-a-right> :call OrgMoveLevel(line("."),'right')<CR>
|
||||||
|
nnoremap <silent> <buffer> <c-a-up> :<C-U>call OrgMoveLevel(line("."),'up',v:count1)<CR>
|
||||||
|
nnoremap <silent> <buffer> <c-a-down> :<C-U>call OrgMoveLevel(line("."),'down',v:count1)<CR>
|
||||||
|
nnoremap <silent> <buffer> <a-end> :call OrgNavigateLevels("end")<CR>
|
||||||
|
nnoremap <silent> <buffer> <a-home> :call OrgNavigateLevels("home")<CR>
|
||||||
|
nnoremap <silent> <buffer> <a-up> :call OrgNavigateLevels("up")<CR>
|
||||||
|
nnoremap <silent> <buffer> <a-down> :call OrgNavigateLevels("down")<CR>
|
||||||
|
nnoremap <silent> <buffer> <a-left> :call OrgNavigateLevels("left")<CR>
|
||||||
|
nnoremap <silent> <buffer> <a-right> :call OrgNavigateLevels("right")<CR>
|
||||||
|
nnoremap <silent> <buffer> <localleader>le :call EditLink()<cr>
|
||||||
|
nnoremap <silent> <buffer> <localleader>lf :call FollowLink(OrgGetLink())<cr>
|
||||||
|
nnoremap <silent> <buffer> <localleader>ln :/]]<cr>
|
||||||
|
nnoremap <silent> <buffer> <localleader>lp :?]]<cr>
|
||||||
|
nnoremap <silent> <buffer> <localleader>lc :set conceallevel=3\|set concealcursor=nc<cr>
|
||||||
|
nnoremap <silent> <buffer> <localleader>la :set conceallevel=3\|set concealcursor=c<cr>
|
||||||
|
nnoremap <silent> <buffer> <localleader>lx :set conceallevel=0<cr>
|
||||||
|
"nnoremap <silent> <buffer> <localleader>,e :call OrgSingleHeadingText("expand")<CR>
|
||||||
|
"nnoremap <silent> <buffer> <localleader>,E :call OrgBodyTextOperation(1,line("$"),"expand")<CR>
|
||||||
|
"nnoremap <silent> <buffer> <localleader>,C :call OrgBodyTextOperation(1,line("$"),"collapse")<CR>
|
||||||
|
"nnoremap <silent> <buffer> <localleader>,c :call OrgSingleHeadingText("collapse")<CR>
|
||||||
|
nnoremap <silent> <buffer> zc :call OrgDoSingleFold(line("."))<CR>
|
||||||
|
|
||||||
|
" below are alternate mappings for terminals, which
|
||||||
|
" don't support some of the above key combinations
|
||||||
|
nnoremap <silent> <buffer> ,<tab> :call OrgGlobalCycle()<cr>
|
||||||
|
nnoremap <silent> <buffer> <localleader>zu :call OrgNavigateLevels("up")<CR>
|
||||||
|
nnoremap <silent> <buffer> <localleader>zd :call OrgNavigateLevels("down")<CR>
|
||||||
|
nnoremap <silent> <buffer> <localleader>zl :call OrgNavigateLevels("left")<CR>
|
||||||
|
nnoremap <silent> <buffer> <localleader>zr :call OrgNavigateLevels("right")<CR>
|
||||||
|
nnoremap <silent> <buffer> <localleader>zL :call OrgMoveLevel(line("."),'left')<CR>
|
||||||
|
nnoremap <silent> <buffer> <localleader>zR :call OrgMoveLevel(line("."),'right')<CR>
|
||||||
|
nnoremap <silent> <buffer> <localleader>k :<c-u>call OrgMoveLevel(line("."),'up',v:count1)<CR>
|
||||||
|
nnoremap <silent> <buffer> <localleader>j :<c-u>call OrgMoveLevel(line("."),'down',v:count1)<CR>
|
||||||
|
nnoremap <silent> <buffer> <localleader>np :call OrgNewHead('levelup')<CR>
|
||||||
|
nnoremap <silent> <buffer> <localleader>ns :call OrgNewHead('leveldown')<CR>
|
262
vim_plugins_src/VimOrganizer_v0313/indent/org.vim
Normal file
262
vim_plugins_src/VimOrganizer_v0313/indent/org.vim
Normal file
|
@ -0,0 +1,262 @@
|
||||||
|
" org.vim - VimOrganizer plugin for Vim
|
||||||
|
" -------------------------------------------------------------
|
||||||
|
" Version: 0.30
|
||||||
|
" Maintainer: Herbert Sitz <hesitz@gmail.com>
|
||||||
|
" Last Change: 2011 Nov 02
|
||||||
|
"
|
||||||
|
" Script: http://www.vim.org/scripts/script.php?script_id=3342
|
||||||
|
" Github page: http://github.com/hsitz/VimOrganizer
|
||||||
|
" Copyright: (c) 2010, 2011 by Herbert Sitz
|
||||||
|
" The VIM LICENSE applies to all files in the
|
||||||
|
" VimOrganizer plugin.
|
||||||
|
" (See the Vim copyright except read "VimOrganizer"
|
||||||
|
" in places where that copyright refers to "Vim".)
|
||||||
|
" http://vimdoc.sourceforge.net/htmldoc/uganda.html#license
|
||||||
|
" No warranty, express or implied.
|
||||||
|
" *** *** Use At-Your-Own-Risk *** ***
|
||||||
|
|
||||||
|
" set indent of text lines beyond heading's left column
|
||||||
|
" 0 -- have text lines flush with their heading's left col
|
||||||
|
if !exists("g:org_indent_from_head")
|
||||||
|
let g:org_indent_from_head = 0
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
|
if exists("b:did_indent") | finish
|
||||||
|
endif
|
||||||
|
let b:did_indent = 1
|
||||||
|
|
||||||
|
|
||||||
|
setlocal indentexpr=GetOrgIndent()
|
||||||
|
setlocal nolisp
|
||||||
|
setlocal nosmartindent
|
||||||
|
setlocal autoindent
|
||||||
|
"setlocal indentkeys+=},=\\item,=\\bibitem
|
||||||
|
|
||||||
|
|
||||||
|
" Only define the function once
|
||||||
|
"if exists("GetOrgIndent") | finish
|
||||||
|
"endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function! GetOrgIndent(...)
|
||||||
|
" Find a non-blank line above the current line.
|
||||||
|
"let lnum = prevnonblank(v:lnum - 1)
|
||||||
|
let lnum = PrevNonBlank(v:lnum - 1)
|
||||||
|
|
||||||
|
" At the start of the file use zero indent.
|
||||||
|
if lnum == 0 | return 0
|
||||||
|
endif
|
||||||
|
|
||||||
|
let curline = getline(v:lnum) " current line
|
||||||
|
"let lminusone = getline(v:lnum-1)
|
||||||
|
"if b:v.last_lnum > 0) && (curline !~ '^\s*$')
|
||||||
|
" let lnum = b:v.last_lnum
|
||||||
|
" let b:v.last_lnum = 0
|
||||||
|
" endif
|
||||||
|
let ind = indent(lnum)
|
||||||
|
|
||||||
|
if b:v.suppress_list_indent == 1
|
||||||
|
let prevline = getline(lnum) " previous line
|
||||||
|
else
|
||||||
|
let prevline = getline(prevnonblank(v:lnum-1))
|
||||||
|
endif
|
||||||
|
|
||||||
|
if (curline =~ '^\s*$') && (b:v.suppress_list_indent == 1)
|
||||||
|
let b:v.suppress_list_indent = 0
|
||||||
|
let b:v.org_list_offset=0
|
||||||
|
endif
|
||||||
|
|
||||||
|
if (curline =~ '^\*\+ ')
|
||||||
|
let ind = 0
|
||||||
|
" below lines are failsafes, hopefully redundant
|
||||||
|
let b:v.suppress_list_indent=0
|
||||||
|
let b:v.suppress_indent=0
|
||||||
|
elseif curline =~ '#+begin_'
|
||||||
|
let b:v.suppress_indent=1
|
||||||
|
let ind = 0
|
||||||
|
elseif curline =~ '#+end_'
|
||||||
|
let b:v.suppress_indent=0
|
||||||
|
let ind = 0
|
||||||
|
elseif curline =~ '^#+'
|
||||||
|
let ind = 0
|
||||||
|
"elseif (curline =~ '^\s*$') && (b:v.suppress_list_indent == 1)
|
||||||
|
" \ && (len(synstack(v:lnum-1,1))>0)
|
||||||
|
" \ && (synIDattr(synstack(v:lnum-1,1)[0],'name') == 'orgList')
|
||||||
|
" let b:v.suppress_list_indent = 0
|
||||||
|
elseif b:v.suppress_indent == 1
|
||||||
|
return indent(curline)
|
||||||
|
elseif b:v.suppress_list_indent == 1
|
||||||
|
return len(matchstr(curline,'^\s*')) + b:v.org_list_offset
|
||||||
|
elseif (curline =~ '^\s*\(\d\+[.):]\|[-+] \)')
|
||||||
|
let before_ind = len(matchstr(curline,'^\s*'))
|
||||||
|
"let ind= ind
|
||||||
|
let b:v.org_list_offset = ind - before_ind
|
||||||
|
let b:v.suppress_list_indent = 1
|
||||||
|
elseif (curline =~'^\s*\d\+[).:]\s\+\S') || (curline =~'^\s*[-+\*]\s\+\S')
|
||||||
|
" if len(curline)>0
|
||||||
|
let ind = indent(curline)
|
||||||
|
" endif
|
||||||
|
elseif prevline =~ '^\*\+ '
|
||||||
|
let ind = len(matchstr(prevline,'^\*\+ ')) + g:org_indent_from_head
|
||||||
|
elseif prevline =~ '^\s*\d\+[).\]:]\s\+\S'
|
||||||
|
let ind = ind + len(matchstr(prevline,'^\s*\zs\d\+[).\]:]\s\+\ze\S'))
|
||||||
|
elseif prevline =~ '^\s*[-+\*]\s\+\S'
|
||||||
|
let ind = ind + len(matchstr(prevline,'^\s*\zs[-+\*]\s\+\ze\S'))
|
||||||
|
elseif (len(synstack(v:lnum,1))>0) && (synIDattr(synstack(v:lnum,1)[0],'name') == 'orgList')
|
||||||
|
let ind = len(matchstr(getline(v:lnum-1),'^\s*'))
|
||||||
|
endif
|
||||||
|
|
||||||
|
return ind
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! PrevNonBlank(line)
|
||||||
|
let line = prevnonblank(a:line)
|
||||||
|
|
||||||
|
if (len(synstack(line,1))>0) && (synIDattr(synstack(line,1)[0],'name') == 'orgLisp')
|
||||||
|
execute line + 1
|
||||||
|
let line = search('^#+begin_src','nb')-1
|
||||||
|
elseif (len(synstack(line-1,1))>0) && (synIDattr(synstack(line-1,1)[0],'name') == 'orgList')
|
||||||
|
execute line - 1
|
||||||
|
let line = search('^\s*$','nb')-1
|
||||||
|
|
||||||
|
endif
|
||||||
|
return prevnonblank(line)
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! GetTestIndent2(lnum)
|
||||||
|
" Find a non-blank line above the current line.
|
||||||
|
"let lnum = prevnonblank(a:lnum - 1)
|
||||||
|
let lnum = PrevNonBlank(a:lnum - 1)
|
||||||
|
|
||||||
|
" At the start of the file use zero indent.
|
||||||
|
if lnum == 0 | return 0
|
||||||
|
endif
|
||||||
|
|
||||||
|
let curline = getline(a:lnum) " current line
|
||||||
|
"let lminusone = getline(a:lnum-1)
|
||||||
|
"if b:v.last_lnum > 0) && (curline !~ '^\s*$')
|
||||||
|
" let lnum = b:v.last_lnum
|
||||||
|
" let b:v.last_lnum = 0
|
||||||
|
" endif
|
||||||
|
let ind = indent(lnum)
|
||||||
|
|
||||||
|
if b:v.suppress_list_indent == 1
|
||||||
|
let prevline = getline(lnum) " previous line
|
||||||
|
else
|
||||||
|
let prevline = getline(prevnonblank(a:lnum-1))
|
||||||
|
endif
|
||||||
|
|
||||||
|
if (curline =~ '^\s*$') && (b:v.suppress_list_indent == 1)
|
||||||
|
let b:v.suppress_list_indent = 0
|
||||||
|
let b:v.org_list_offset=0
|
||||||
|
endif
|
||||||
|
|
||||||
|
if (curline =~ '^\*\+ ')
|
||||||
|
let ind = 0
|
||||||
|
" below lines are failsafes, hopefully redundant
|
||||||
|
let b:v.suppress_list_indent=0
|
||||||
|
let b:v.suppress_indent=0
|
||||||
|
elseif curline =~ '#+begin_'
|
||||||
|
let b:v.suppress_indent=1
|
||||||
|
let ind = 0
|
||||||
|
elseif curline =~ '#+end_'
|
||||||
|
let b:v.suppress_indent=0
|
||||||
|
let ind = 0
|
||||||
|
"elseif (curline =~ '^\s*$') && (b:v.suppress_list_indent == 1)
|
||||||
|
" \ && (len(synstack(a:lnum-1,1))>0)
|
||||||
|
" \ && (synIDattr(synstack(a:lnum-1,1)[0],'name') == 'orgList')
|
||||||
|
" let b:v.suppress_list_indent = 0
|
||||||
|
elseif b:v.suppress_indent == 1
|
||||||
|
return indent(curline)
|
||||||
|
elseif b:v.suppress_list_indent == 1
|
||||||
|
return len(matchstr(curline,'^\s*')) + b:v.org_list_offset
|
||||||
|
elseif (curline =~ '^\s*\(\d\+[.):]\|[-+] \)')
|
||||||
|
let before_ind = len(matchstr(curline,'^\s*'))
|
||||||
|
"let ind= ind
|
||||||
|
let b:v.org_list_offset = ind - before_ind
|
||||||
|
let b:v.suppress_list_indent = 1
|
||||||
|
elseif (curline =~'^\s*\d\+[).:]\s\+\S') || (curline =~'^\s*[-+\*]\s\+\S')
|
||||||
|
" if len(curline)>0
|
||||||
|
let ind = indent(curline)
|
||||||
|
" endif
|
||||||
|
elseif prevline =~ '^\*\+ '
|
||||||
|
let ind = len(matchstr(prevline,'^\*\+ ')) + g:org_indent_from_head
|
||||||
|
elseif prevline =~ '^\s*\d\+[).\]:]\s\+\S'
|
||||||
|
let ind = ind + len(matchstr(prevline,'^\s*\zs\d\+[).\]:]\s\+\ze\S'))
|
||||||
|
elseif prevline =~ '^\s*[-+\*]\s\+\S'
|
||||||
|
let ind = ind + len(matchstr(prevline,'^\s*\zs[-+\*]\s\+\ze\S'))
|
||||||
|
elseif (len(synstack(a:lnum,1))>0) && (synIDattr(synstack(a:lnum,1)[0],'name') == 'orgList')
|
||||||
|
let ind = len(matchstr(getline(a:lnum-1),'^\s*'))
|
||||||
|
endif
|
||||||
|
|
||||||
|
return ind
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! GetTestIndent(lnum)
|
||||||
|
" Find a non-blank line above the current line.
|
||||||
|
"let lnum = prevnonblank(a:lnum - 1)
|
||||||
|
let lnum = PrevNonBlank(a:lnum - 1)
|
||||||
|
|
||||||
|
" At the start of the file use zero indent.
|
||||||
|
if lnum == 0 | return 0
|
||||||
|
endif
|
||||||
|
|
||||||
|
let curline = getline(a:lnum) " current line
|
||||||
|
"let lminusone = getline(a:lnum-1)
|
||||||
|
"if b:v.last_lnum > 0) && (curline !~ '^\s*$')
|
||||||
|
" let lnum = b:v.last_lnum
|
||||||
|
" let b:v.last_lnum = 0
|
||||||
|
" endif
|
||||||
|
let ind = indent(lnum)
|
||||||
|
if b:v.suppress_list_indent == 1
|
||||||
|
let prevline = getline(lnum) " previous line
|
||||||
|
else
|
||||||
|
let prevline = getline(prevnonblank(v:lnum-1))
|
||||||
|
endif
|
||||||
|
|
||||||
|
if (curline =~ '^\s*$') && (b:v.suppress_list_indent == 1)
|
||||||
|
let b:v.suppress_list_indent = 0
|
||||||
|
let b:v.org_list_offset=0
|
||||||
|
endif
|
||||||
|
|
||||||
|
if (curline =~ '^\*\+ ')
|
||||||
|
let ind = 0
|
||||||
|
" below lines are failsafes, hopefully redundant
|
||||||
|
let b:v.suppress_list_indent=0
|
||||||
|
let b:v.suppress_indent=0
|
||||||
|
elseif curline =~ '#+begin_'
|
||||||
|
let b:v.suppress_indent=1
|
||||||
|
let ind = 0
|
||||||
|
elseif curline =~ '#+end_'
|
||||||
|
let b:v.suppress_indent=0
|
||||||
|
let ind = 0
|
||||||
|
"elseif (curline =~ '^\s*$') && (b:v.suppress_list_indent == 1)
|
||||||
|
" \ && (len(synstack(a:lnum-1,1))>0)
|
||||||
|
" \ && (synIDattr(synstack(a:lnum-1,1)[0],'name') == 'orgList')
|
||||||
|
" let b:v.suppress_list_indent = 0
|
||||||
|
elseif b:v.suppress_indent == 1
|
||||||
|
return indent(curline)
|
||||||
|
elseif b:v.suppress_list_indent == 1
|
||||||
|
return len(matchstr(curline,'^\s*')) + b:v.org_list_offset
|
||||||
|
elseif (curline =~ '^\s*\(\d\+[.):]\|[-+] \)')
|
||||||
|
let before_ind = len(matchstr(curline,'^\s*'))
|
||||||
|
"let ind= ind
|
||||||
|
let b:v.org_list_offset = ind - before_ind
|
||||||
|
let b:v.suppress_list_indent = 1
|
||||||
|
elseif (curline =~'^\s*\d\+[).:]\s\+\S') || (curline =~'^\s*[-+\*]\s\+\S')
|
||||||
|
" if len(curline)>0
|
||||||
|
let ind = indent(curline)
|
||||||
|
" endif
|
||||||
|
elseif prevline =~ '^\*\+ '
|
||||||
|
let ind = len(matchstr(prevline,'^\*\+ ')) + g:org_indent_from_head
|
||||||
|
elseif prevline =~ '^\s*\d\+[).\]:]\s\+\S'
|
||||||
|
let ind = ind + len(matchstr(prevline,'^\s*\zs\d\+[).\]:]\s\+\ze\S'))
|
||||||
|
elseif prevline =~ '^\s*[-+\*]\s\+\S'
|
||||||
|
let ind = ind + len(matchstr(prevline,'^\s*\zs[-+\*]\s\+\ze\S'))
|
||||||
|
endif
|
||||||
|
|
||||||
|
return ind
|
||||||
|
endfunction
|
||||||
|
|
130
vim_plugins_src/VimOrganizer_v0313/intro.txt
Normal file
130
vim_plugins_src/VimOrganizer_v0313/intro.txt
Normal file
|
@ -0,0 +1,130 @@
|
||||||
|
VimOrganizer version 0.30, November 2, 2011. Requires Vim version that
|
||||||
|
is compiled with support for folding and tabs. Conceal will
|
||||||
|
be taken advantage of if working with Vim73 supporting conceal.
|
||||||
|
(Also, I STRONGLY suggest that you apply a patch to Vim so that
|
||||||
|
folded headings can have level-dependent highlighting,
|
||||||
|
patch for Vim73 is in contrib directory of the download. If you're on
|
||||||
|
Windows contact me and I should be able to provide you with an
|
||||||
|
executable. If I hadn't been able to make Vim do this I would have
|
||||||
|
bitten the bullet and moved to Emacs, as much as I hate editing in Emacs.)
|
||||||
|
|
||||||
|
VimOrganizer is a Vim filetype plugin that attempts to clone Emacs' Org-mode.
|
||||||
|
It is currently (November 2011) in an alpha-stage, both in terms of (1) the
|
||||||
|
breadth and depth of Org-mode features it clones and (2) the stability of its
|
||||||
|
operation. It is nevertheless very usable.
|
||||||
|
|
||||||
|
Some of the ADDITIONS AND IMPROVEMENTS since previous (December 2010) version:
|
||||||
|
-- Adjusts to any colorscheme
|
||||||
|
-- Org menu in gvim.
|
||||||
|
-- "Dashboards" to assist with Date entry, Columns, Tables,
|
||||||
|
Agenda searches, and exporting.
|
||||||
|
-- VimOrganizer help file to install in Vim.
|
||||||
|
-- Better compatibility with Org-mode files. Open, edit, and save same
|
||||||
|
files in Org-mode and/or VimOrganizer with (some) of the functionality and
|
||||||
|
configuration-specific options of Org-mode supported in VimOrganizer.
|
||||||
|
-- Support for Org-mode style links (as well as use of 'Conceal' in Vim73
|
||||||
|
to hide link brackets and
|
||||||
|
descriptions)
|
||||||
|
-- Easy to use Org-like column mode, including column headings,
|
||||||
|
inherited columns, support for Org column blocks, and ability to
|
||||||
|
specify a list of custom column specs to apply in any buffer.
|
||||||
|
-- Org-like narrowing of code blocks and subtrees
|
||||||
|
-- Support for Org-like specifications of TODOS, tags, dates,
|
||||||
|
including support for Org-compatible config lines in a file.
|
||||||
|
-- Support for Org-like CATEGORIES, both in specification and in
|
||||||
|
their inherited behavior.
|
||||||
|
-- Search specification in Agenda searches is now nearly identical
|
||||||
|
to specification of searches in Org-mode.
|
||||||
|
-- User can specify list of commonly used custom agenda searches.
|
||||||
|
-- Clockin, clockout, and (when a running Emacs server is available,
|
||||||
|
clocktable block creation and updates.
|
||||||
|
-- Org-like "refiling"
|
||||||
|
-- Easy creation and editing of tables, as well as (when a running Emacs
|
||||||
|
server is available) manipulation and evaluation of tables, including
|
||||||
|
all spreadsheet functionality in Org-mode.
|
||||||
|
-- "Live" block evaluation (when a running Emacs server is available)
|
||||||
|
-- Support for nearly all the export types and export options
|
||||||
|
available in Org-mode (when running Emacs server is available)
|
||||||
|
-- Call out to an Emacs server to do "tangling" (literate programming).
|
||||||
|
-- Many bug fixes and small improvements
|
||||||
|
|
||||||
|
Org-mode, and thus VimOrganizer, is a text-editor plugin/application that can
|
||||||
|
be used for (1) keeping notes, (2) maintaining TODO lists, (3) planning
|
||||||
|
projects, and/or (4) authoring and publishing documents, including support for
|
||||||
|
literate programming and "reproducible research". Like Org-mode, VimOrganizer
|
||||||
|
does this by implementing a flexible plain-text system with a lightly
|
||||||
|
structured document format. Org-mode has been in constant development for
|
||||||
|
seven or eight years, and continues to be developed. Work on VimOrganizer is
|
||||||
|
likewise ongoing, but VimOrganizer is at present a smaller and less ambitious
|
||||||
|
project than Org-mode.
|
||||||
|
|
||||||
|
File formats and basic workflows for VimOrganizer and Org-mode are very
|
||||||
|
similar (files auto-convert as part of loading process) and VimOrganizer
|
||||||
|
actually calls out to an Emacs' Org-mode server to
|
||||||
|
implement important features, e.g., exporting to pdf format for printing.
|
||||||
|
|
||||||
|
Thus, to make full use of VimOrganizer you will want to have an Emacs'
|
||||||
|
server running alongside. In most cases this requires little knowledge of
|
||||||
|
Emacs other than how to start it up and add a few lines to the '.emacs' file,
|
||||||
|
Emacs' counterpart to Vim's '.vimrc'. (You can even edit the .emacs file in
|
||||||
|
Vim.) VimOrganizer is focused on leveraging Org-mode by accessing it via
|
||||||
|
an Emacs server, and re-implementing in Vim only what is necessary and makes
|
||||||
|
sense.
|
||||||
|
|
||||||
|
VimOrganizer also lets Vim users access Org-babel, a subproject of
|
||||||
|
Org-mode that allows execution of source-code blocks in org-format
|
||||||
|
documents. Uses for Org-babel range from writing technical research papers to
|
||||||
|
simply using a VimOrganizer document as a "language-scratchpad". Over
|
||||||
|
twenty languages are supported, including C, R, Lisp, Python, Perl, Ruby,
|
||||||
|
and others. VimOrganizer calls out to a running Emacs server for Org-babel
|
||||||
|
processing; functionality and speed are essentially the same as
|
||||||
|
when editing with Org-mode in Emacs.
|
||||||
|
|
||||||
|
VimOrganizer has a first draft of a Vim help file, but the best first step in
|
||||||
|
learning about VimOrganizer is to learn about Emacs' Org-mode. VimOrganizer
|
||||||
|
uses the same basic concepts but implements them within the context of Vim
|
||||||
|
(and with a reduced feature set). Org-mode's main documentation and
|
||||||
|
support newsgroup are found here:
|
||||||
|
Org-mode Main Manual: http://orgmode.org/manual/index.html
|
||||||
|
Org-mode Compact Guide: http://orgmode.org/guide/index.html
|
||||||
|
Org-mode support: http://news.gmane.org/gmane.emacs.orgmode
|
||||||
|
Org-babel information: http://orgmode.org/worg/org-contrib/babel/
|
||||||
|
|
||||||
|
VimOrganizer help can be found here:
|
||||||
|
https://github.com/hsitz/VimOrganizer/blob/master/doc/vimorg.txt
|
||||||
|
|
||||||
|
==========================
|
||||||
|
INSTALLATION INSTRUCTIONS
|
||||||
|
===========================
|
||||||
|
https://github.com/hsitz/VimOrganizer/blob/master/INSTALL.txt
|
||||||
|
|
||||||
|
|
||||||
|
QUESTIONS, COMMENTS, SUGGESTIONS
|
||||||
|
================================
|
||||||
|
Questions, comments, and suggestions regarding VimOrganizer are always
|
||||||
|
appreciated. The preferred place for those is in the VimOrganizer newsgroup
|
||||||
|
here:
|
||||||
|
http://groups.google.com/group/vimorganizer/topics
|
||||||
|
|
||||||
|
VimOrganizer project files are maintained at github and the version
|
||||||
|
there may be more recent than the files at vim.org:
|
||||||
|
https://github.com/hsitz/VimOrganizer
|
||||||
|
|
||||||
|
----------------------------------------------------------------
|
||||||
|
NOTE: some code from other Vim plugins has been incorporated into the
|
||||||
|
VimOrganizer script files. Do NOT download these plugins to use them
|
||||||
|
with VimOrganizer; since VimOrganizer does not call out to them in any way:
|
||||||
|
|
||||||
|
1. Charles Campbell's great calendar utilities
|
||||||
|
2. Table editing routines from Maxim Kim's excellent vimwiki plugin.
|
||||||
|
These are really quite nice (seem to be inspired by Org-mode's
|
||||||
|
own table-editing stuff) and deserve to be offered as a separate
|
||||||
|
plugin of their own, not dependent on any larger project. (If
|
||||||
|
VimOrganizer is not quite the sort of plugin you're looking for then
|
||||||
|
vimwiki may be.)
|
||||||
|
----------------------------------------------------------------
|
||||||
|
|
||||||
|
VimOrganizer page at vim.org:
|
||||||
|
http://www.vim.org/scripts/script.php?script_id=3342
|
||||||
|
|
||||||
|
|
102
vim_plugins_src/VimOrganizer_v0313/syntax/org.vim
Normal file
102
vim_plugins_src/VimOrganizer_v0313/syntax/org.vim
Normal file
|
@ -0,0 +1,102 @@
|
||||||
|
" org.vim - VimOrganizer plugin for Vim
|
||||||
|
" -------------------------------------------------------------
|
||||||
|
" Version: 0.30
|
||||||
|
" Maintainer: Herbert Sitz <hesitz@gmail.com>
|
||||||
|
" Last Change: 2011 Nov 02
|
||||||
|
"
|
||||||
|
" Script: http://www.vim.org/scripts/script.php?script_id=3342
|
||||||
|
" Github page: http://github.com/hsitz/VimOrganizer
|
||||||
|
" Copyright: (c) 2010, 2011 by Herbert Sitz
|
||||||
|
" The VIM LICENSE applies to all files in the
|
||||||
|
" VimOrganizer plugin.
|
||||||
|
" (See the Vim copyright except read "VimOrganizer"
|
||||||
|
" in places where that copyright refers to "Vim".)
|
||||||
|
" http://vimdoc.sourceforge.net/htmldoc/uganda.html#license
|
||||||
|
" No warranty, express or implied.
|
||||||
|
" *** *** Use At-Your-Own-Risk *** ***
|
||||||
|
|
||||||
|
" THIS FUNC is only for variable stars per level, currently
|
||||||
|
" not exposed to users
|
||||||
|
function! s:SynStars(perlevel)
|
||||||
|
let b:levelstars = a:perlevel
|
||||||
|
exe 'syntax match OL1 +^\(*\)\{1}\s.*+ contains=stars'
|
||||||
|
exe 'syntax match OL2 +^\(*\)\{'.( 1 + 1*a:perlevel).'}\s.*+ contains=stars'
|
||||||
|
exe 'syntax match OL3 +^\(*\)\{'.(1 + 2*a:perlevel).'}\s.*+ contains=stars'
|
||||||
|
exe 'syntax match OL4 +^\(*\)\{'.(1 + 3*a:perlevel).'}\s.*+ contains=stars'
|
||||||
|
exe 'syntax match OL5 +^\(*\)\{'.(1 + 4*a:perlevel).'}\s.*+ contains=stars'
|
||||||
|
exe 'syntax match OL6 +^\(*\)\{'.(1 + 5*a:perlevel).'}\s.*+ contains=stars'
|
||||||
|
exe 'syntax match OL7 +^\(*\)\{'.(1 + 6*a:perlevel).'}\s.*+ contains=stars'
|
||||||
|
exe 'syntax match OL8 +^\(*\)\{'.(1 + 7*a:perlevel).'}\s.*+ contains=stars'
|
||||||
|
exe 'syntax match OL9 +^\(*\)\{'.(1 + 8*a:perlevel).'}\s.*+ contains=stars'
|
||||||
|
endfunction
|
||||||
|
command! ChangeSyn call <SID>SynStars(b:levelstars)
|
||||||
|
|
||||||
|
|
||||||
|
syntax match Org_Property_Value +^\s*:\S*:\ze.*+
|
||||||
|
|
||||||
|
syntax match Org_Tag +\s*:\S*:$+
|
||||||
|
syntax match Org_Drawer +^\s*:\(PROPERTIES\|LOGBOOK\|END\):\ze.*+
|
||||||
|
syntax match Org_Date +[<[]\d\d\d\d-\d\d-\d\d.\{-1,}[\]>]+
|
||||||
|
syntax match Org_Star +\*\+\*+me=e-1 contained
|
||||||
|
syntax match Org_Table +^\s*|.\+|\s*$+
|
||||||
|
"syntax match NEXT '\* \zsNEXT' containedin=OL1,OL2,OL3,OL4,OL5,OL6
|
||||||
|
"syntax match CANCELED '\* \zsCANCELED' containedin=OL1,OL2,OL3,OL4,OL5,OL6
|
||||||
|
"syntax match TODO '\* \zsTODO' containedin=OL1,OL2,OL3,OL4,OL5,OL6
|
||||||
|
"syntax match STARTED '\* \zsSTARTED' containedin=OL1,OL2,OL3,OL4,OL5,OL6
|
||||||
|
"syntax match DONE '\* \zsDONE' containedin=OL1,OL2,OL3,OL4,OL5,OL6
|
||||||
|
|
||||||
|
syntax match Org_Config_Line '^#+.*' containedin=Org_Block,Org_Src_Block
|
||||||
|
syntax region Org_Block start='\c^#+begin.*$' end='\c^#+end.*' keepend contains=Org_Config_Line
|
||||||
|
syntax region Org_Src_Block start='\c^#+begin_src.*$' end='\c^#+end.*' keepend contains=Org_Config_Line
|
||||||
|
|
||||||
|
syntax match OL1 +^\(*\)\{1}\s.*+ contains=stars
|
||||||
|
syntax match OL2 +^\(*\)\{2}\s.*+ contains=stars
|
||||||
|
syntax match OL3 +^\(*\)\{3}\s.*+ contains=stars
|
||||||
|
syntax match OL4 +^\(*\)\{4}\s.*+ contains=stars
|
||||||
|
syntax match OL5 +^\(*\)\{5}\s.*+ contains=stars
|
||||||
|
syntax match OL6 +^\(*\)\{6}\s.*+ contains=stars
|
||||||
|
syntax match OL7 +^\(*\)\{7}\s.*+ contains=stars
|
||||||
|
syntax match OL8 +^\(*\)\{8}\s.*+ contains=stars
|
||||||
|
syntax match OL9 +^\(*\)\{9}\s.*+ contains=stars
|
||||||
|
|
||||||
|
" character highlights
|
||||||
|
syn match Org_Code '=\S.\{-}\S='
|
||||||
|
syn match Org_Itals '\(\_^\|\W\)/\zs\S[^/]\{-}\S\ze/\_W'
|
||||||
|
syn match Org_Bold '\(\_^\|\W\)\*\zs\S[^*]\{-}\S\ze\*\_W'
|
||||||
|
syn match Org_Underline '\(\_^\|\W\)_\zs\S[^_]\{-}\S\ze_\_W'
|
||||||
|
syn match Org_Lnumber '^\t*\(\d\.\)*\s\s' contained
|
||||||
|
|
||||||
|
if has("conceal")
|
||||||
|
syn region Org_Half_Link concealends matchgroup=linkends start='\[\[' end=']]' contains=FullLink
|
||||||
|
syn region Org_Full_Link concealends matchgroup=linkends start='\[\[\(.\{-1,}\)]\[' end=']]'
|
||||||
|
endif
|
||||||
|
"exec "syntax match DONETODO '" . b:v.todoDoneMatch . "' containedin=OL1,OL2,OL3,OL4,OL5,OL6"
|
||||||
|
"exec "syntax match NOTDONETODO '" . b:v.todoNotDoneMatch . "' containedin=OL1,OL2,OL3,OL4,OL5,OL6"
|
||||||
|
|
||||||
|
" ***********************************************
|
||||||
|
" section below is example for having subregions
|
||||||
|
" of code in an .org file that use syntax highlighting
|
||||||
|
" for the language in the code block itself
|
||||||
|
" not regular Org syntax highlighting.
|
||||||
|
" See Emacs' Org documentation for some details:
|
||||||
|
" http://orgmode.org/manual/Working-With-Source-Code.html#Working-With-Source-Code
|
||||||
|
" Notice that much of the functionality of
|
||||||
|
" source code blocks is for when they are exported or 'tangled'.
|
||||||
|
" VimOrganizer calls out to an Emacs server for exports (and,
|
||||||
|
" -- soon to come -- for tangling) so the functionality described
|
||||||
|
" in the Emacs Org-mode docs already exists for VimOrganizer.
|
||||||
|
"
|
||||||
|
" The example below is for Lisp, other languages could be added
|
||||||
|
" using same priciple. In addition to using context-sensitive
|
||||||
|
" syntax highlighting for code blocks, VimOrganizer will
|
||||||
|
" eventually use context-sensitive language indent-rules. . .
|
||||||
|
" ************************************************"
|
||||||
|
let b:current_syntax=''
|
||||||
|
unlet b:current_syntax
|
||||||
|
syntax include @Lispcode $VIMRUNTIME/syntax/lisp.vim
|
||||||
|
syntax region orgLisp start='^#+begin_src/semacs-lisp' end='^#+end_src$' contains=@Lispcode
|
||||||
|
let b:current_syntax = 'combined'
|
||||||
|
hi orgLisp gui=bold
|
||||||
|
|
||||||
|
|
||||||
|
" vim600: set foldmethod=marker foldlevel=0:
|
840
vim_plugins_src/a.vim
Normal file
840
vim_plugins_src/a.vim
Normal file
|
@ -0,0 +1,840 @@
|
||||||
|
" Copyright (c) 1998-2006
|
||||||
|
" Michael Sharpe <feline@irendi.com>
|
||||||
|
"
|
||||||
|
" We grant permission to use, copy modify, distribute, and sell this
|
||||||
|
" software for any purpose without fee, provided that the above copyright
|
||||||
|
" notice and this text are not removed. We make no guarantee about the
|
||||||
|
" suitability of this software for any purpose and we are not liable
|
||||||
|
" for any damages resulting from its use. Further, we are under no
|
||||||
|
" obligation to maintain or extend this software. It is provided on an
|
||||||
|
" "as is" basis without any expressed or implied warranty.
|
||||||
|
|
||||||
|
" Directory & regex enhancements added by Bindu Wavell who is well known on
|
||||||
|
" vim.sf.net
|
||||||
|
"
|
||||||
|
" Patch for spaces in files/directories from Nathan Stien (also reported by
|
||||||
|
" Soeren Sonnenburg)
|
||||||
|
|
||||||
|
" Do not load a.vim if is has already been loaded.
|
||||||
|
if exists("loaded_alternateFile")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
if (v:progname == "ex")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
let loaded_alternateFile = 1
|
||||||
|
|
||||||
|
let alternateExtensionsDict = {}
|
||||||
|
|
||||||
|
" setup the default set of alternate extensions. The user can override in thier
|
||||||
|
" .vimrc if the defaults are not suitable. To override in a .vimrc simply set a
|
||||||
|
" g:alternateExtensions_<EXT> variable to a comma separated list of alternates,
|
||||||
|
" where <EXT> is the extension to map.
|
||||||
|
" E.g. let g:alternateExtensions_CPP = "inc,h,H,HPP,hpp"
|
||||||
|
" let g:alternateExtensions_{'aspx.cs'} = "aspx"
|
||||||
|
|
||||||
|
|
||||||
|
" This variable will be increased when an extension with greater number of dots
|
||||||
|
" is added by the AddAlternateExtensionMapping call.
|
||||||
|
let s:maxDotsInExtension = 1
|
||||||
|
|
||||||
|
" Function : AddAlternateExtensionMapping (PRIVATE)
|
||||||
|
" Purpose : simple helper function to add the default alternate extension
|
||||||
|
" mappings.
|
||||||
|
" Args : extension -- the extension to map
|
||||||
|
" alternates -- comma separated list of alternates extensions
|
||||||
|
" Returns : nothing
|
||||||
|
" Author : Michael Sharpe <feline@irendi.com>
|
||||||
|
function! <SID>AddAlternateExtensionMapping(extension, alternates)
|
||||||
|
" This code does not actually work for variables like foo{'a.b.c.d.e'}
|
||||||
|
"let varName = "g:alternateExtensions_" . a:extension
|
||||||
|
"if (!exists(varName))
|
||||||
|
" let g:alternateExtensions_{a:extension} = a:alternates
|
||||||
|
"endif
|
||||||
|
|
||||||
|
" This code handles extensions which contains a dot. exists() fails with
|
||||||
|
" such names.
|
||||||
|
"let v:errmsg = ""
|
||||||
|
" FIXME this line causes ex to return 1 instead of 0 for some reason??
|
||||||
|
"silent! echo g:alternateExtensions_{a:extension}
|
||||||
|
"if (v:errmsg != "")
|
||||||
|
"let g:alternateExtensions_{a:extension} = a:alternates
|
||||||
|
"endif
|
||||||
|
|
||||||
|
let g:alternateExtensionsDict[a:extension] = a:alternates
|
||||||
|
let dotsNumber = strlen(substitute(a:extension, "[^.]", "", "g"))
|
||||||
|
if s:maxDotsInExtension < dotsNumber
|
||||||
|
let s:maxDotsInExtension = dotsNumber
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
|
" Add all the default extensions
|
||||||
|
" Mappings for C and C++
|
||||||
|
call <SID>AddAlternateExtensionMapping('h',"c,cpp,cxx,cc,CC")
|
||||||
|
call <SID>AddAlternateExtensionMapping('H',"C,CPP,CXX,CC")
|
||||||
|
call <SID>AddAlternateExtensionMapping('hpp',"cpp,c")
|
||||||
|
call <SID>AddAlternateExtensionMapping('HPP',"CPP,C")
|
||||||
|
call <SID>AddAlternateExtensionMapping('c',"h")
|
||||||
|
call <SID>AddAlternateExtensionMapping('C',"H")
|
||||||
|
call <SID>AddAlternateExtensionMapping('cpp',"h,hpp")
|
||||||
|
call <SID>AddAlternateExtensionMapping('CPP',"H,HPP")
|
||||||
|
call <SID>AddAlternateExtensionMapping('cc',"h")
|
||||||
|
call <SID>AddAlternateExtensionMapping('CC',"H,h")
|
||||||
|
call <SID>AddAlternateExtensionMapping('cxx',"h")
|
||||||
|
call <SID>AddAlternateExtensionMapping('CXX',"H")
|
||||||
|
" Mappings for PSL7
|
||||||
|
call <SID>AddAlternateExtensionMapping('psl',"ph")
|
||||||
|
call <SID>AddAlternateExtensionMapping('ph',"psl")
|
||||||
|
" Mappings for ADA
|
||||||
|
call <SID>AddAlternateExtensionMapping('adb',"ads")
|
||||||
|
call <SID>AddAlternateExtensionMapping('ads',"adb")
|
||||||
|
" Mappings for lex and yacc files
|
||||||
|
call <SID>AddAlternateExtensionMapping('l',"y,yacc,ypp")
|
||||||
|
call <SID>AddAlternateExtensionMapping('lex',"yacc,y,ypp")
|
||||||
|
call <SID>AddAlternateExtensionMapping('lpp',"ypp,y,yacc")
|
||||||
|
call <SID>AddAlternateExtensionMapping('y',"l,lex,lpp")
|
||||||
|
call <SID>AddAlternateExtensionMapping('yacc',"lex,l,lpp")
|
||||||
|
call <SID>AddAlternateExtensionMapping('ypp',"lpp,l,lex")
|
||||||
|
" Mappings for OCaml
|
||||||
|
call <SID>AddAlternateExtensionMapping('ml',"mli")
|
||||||
|
call <SID>AddAlternateExtensionMapping('mli',"ml")
|
||||||
|
" ASP stuff
|
||||||
|
call <SID>AddAlternateExtensionMapping('aspx.cs', 'aspx')
|
||||||
|
call <SID>AddAlternateExtensionMapping('aspx.vb', 'aspx')
|
||||||
|
call <SID>AddAlternateExtensionMapping('aspx', 'aspx.cs,aspx.vb')
|
||||||
|
|
||||||
|
" Setup default search path, unless the user has specified
|
||||||
|
" a path in their [._]vimrc.
|
||||||
|
if (!exists('g:alternateSearchPath'))
|
||||||
|
let g:alternateSearchPath = 'sfr:../source,sfr:../src,sfr:../include,sfr:../inc'
|
||||||
|
endif
|
||||||
|
|
||||||
|
" If this variable is true then a.vim will not alternate to a file/buffer which
|
||||||
|
" does not exist. E.g while editing a.c and the :A will not swtich to a.h
|
||||||
|
" unless it exists.
|
||||||
|
if (!exists('g:alternateNoDefaultAlternate'))
|
||||||
|
" by default a.vim will alternate to a file which does not exist
|
||||||
|
let g:alternateNoDefaultAlternate = 0
|
||||||
|
endif
|
||||||
|
|
||||||
|
" If this variable is true then a.vim will convert the alternate filename to a
|
||||||
|
" filename relative to the current working directory.
|
||||||
|
" Feature by Nathan Huizinga
|
||||||
|
if (!exists('g:alternateRelativeFiles'))
|
||||||
|
" by default a.vim will not convert the filename to one relative to the
|
||||||
|
" current working directory
|
||||||
|
let g:alternateRelativeFiles = 0
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
" Function : GetNthItemFromList (PRIVATE)
|
||||||
|
" Purpose : Support reading items from a comma seperated list
|
||||||
|
" Used to iterate all the extensions in an extension spec
|
||||||
|
" Used to iterate all path prefixes
|
||||||
|
" Args : list -- the list (extension spec, file paths) to iterate
|
||||||
|
" n -- the extension to get
|
||||||
|
" Returns : the nth item (extension, path) from the list (extension
|
||||||
|
" spec), or "" for failure
|
||||||
|
" Author : Michael Sharpe <feline@irendi.com>
|
||||||
|
" History : Renamed from GetNthExtensionFromSpec to GetNthItemFromList
|
||||||
|
" to reflect a more generic use of this function. -- Bindu
|
||||||
|
function! <SID>GetNthItemFromList(list, n)
|
||||||
|
let itemStart = 0
|
||||||
|
let itemEnd = -1
|
||||||
|
let pos = 0
|
||||||
|
let item = ""
|
||||||
|
let i = 0
|
||||||
|
while (i != a:n)
|
||||||
|
let itemStart = itemEnd + 1
|
||||||
|
let itemEnd = match(a:list, ",", itemStart)
|
||||||
|
let i = i + 1
|
||||||
|
if (itemEnd == -1)
|
||||||
|
if (i == a:n)
|
||||||
|
let itemEnd = strlen(a:list)
|
||||||
|
endif
|
||||||
|
break
|
||||||
|
endif
|
||||||
|
endwhile
|
||||||
|
if (itemEnd != -1)
|
||||||
|
let item = strpart(a:list, itemStart, itemEnd - itemStart)
|
||||||
|
endif
|
||||||
|
return item
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Function : ExpandAlternatePath (PRIVATE)
|
||||||
|
" Purpose : Expand path info. A path with a prefix of "wdr:" will be
|
||||||
|
" treated as relative to the working directory (i.e. the
|
||||||
|
" directory where vim was started.) A path prefix of "abs:" will
|
||||||
|
" be treated as absolute. No prefix or "sfr:" will result in the
|
||||||
|
" path being treated as relative to the source file (see sfPath
|
||||||
|
" argument).
|
||||||
|
"
|
||||||
|
" A prefix of "reg:" will treat the pathSpec as a regular
|
||||||
|
" expression substitution that is applied to the source file
|
||||||
|
" path. The format is:
|
||||||
|
"
|
||||||
|
" reg:<sep><pattern><sep><subst><sep><flag><sep>
|
||||||
|
"
|
||||||
|
" <sep> seperator character, we often use one of [/|%#]
|
||||||
|
" <pattern> is what you are looking for
|
||||||
|
" <subst> is the output pattern
|
||||||
|
" <flag> can be g for global replace or empty
|
||||||
|
"
|
||||||
|
" EXAMPLE: 'reg:/inc/src/g/' will replace every instance
|
||||||
|
" of 'inc' with 'src' in the source file path. It is possible
|
||||||
|
" to use match variables so you could do something like:
|
||||||
|
" 'reg:|src/\([^/]*\)|inc/\1||' (see 'help :substitute',
|
||||||
|
" 'help pattern' and 'help sub-replace-special' for more details
|
||||||
|
"
|
||||||
|
" NOTE: a.vim uses ',' (comma) internally so DON'T use it
|
||||||
|
" in your regular expressions or other pathSpecs unless you update
|
||||||
|
" the rest of the a.vim code to use some other seperator.
|
||||||
|
"
|
||||||
|
" Args : pathSpec -- path component (or substitution patterns)
|
||||||
|
" sfPath -- source file path
|
||||||
|
" Returns : a path that can be used by AlternateFile()
|
||||||
|
" Author : Bindu Wavell <bindu@wavell.net>
|
||||||
|
function! <SID>ExpandAlternatePath(pathSpec, sfPath)
|
||||||
|
let prfx = strpart(a:pathSpec, 0, 4)
|
||||||
|
if (prfx == "wdr:" || prfx == "abs:")
|
||||||
|
let path = strpart(a:pathSpec, 4)
|
||||||
|
elseif (prfx == "reg:")
|
||||||
|
let re = strpart(a:pathSpec, 4)
|
||||||
|
let sep = strpart(re, 0, 1)
|
||||||
|
let patend = match(re, sep, 1)
|
||||||
|
let pat = strpart(re, 1, patend - 1)
|
||||||
|
let subend = match(re, sep, patend + 1)
|
||||||
|
let sub = strpart(re, patend+1, subend - patend - 1)
|
||||||
|
let flag = strpart(re, strlen(re) - 2)
|
||||||
|
if (flag == sep)
|
||||||
|
let flag = ''
|
||||||
|
endif
|
||||||
|
let path = substitute(a:sfPath, pat, sub, flag)
|
||||||
|
"call confirm('PAT: [' . pat . '] SUB: [' . sub . ']')
|
||||||
|
"call confirm(a:sfPath . ' => ' . path)
|
||||||
|
else
|
||||||
|
let path = a:pathSpec
|
||||||
|
if (prfx == "sfr:")
|
||||||
|
let path = strpart(path, 4)
|
||||||
|
endif
|
||||||
|
let path = a:sfPath . "/" . path
|
||||||
|
endif
|
||||||
|
return path
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Function : FindFileInSearchPath (PRIVATE)
|
||||||
|
" Purpose : Searches for a file in the search path list
|
||||||
|
" Args : filename -- name of the file to search for
|
||||||
|
" pathList -- the path list to search
|
||||||
|
" relPathBase -- the path which relative paths are expanded from
|
||||||
|
" Returns : An expanded filename if found, the empty string otherwise
|
||||||
|
" Author : Michael Sharpe (feline@irendi.com)
|
||||||
|
" History : inline code written by Bindu Wavell originally
|
||||||
|
function! <SID>FindFileInSearchPath(fileName, pathList, relPathBase)
|
||||||
|
let filepath = ""
|
||||||
|
let m = 1
|
||||||
|
let pathListLen = strlen(a:pathList)
|
||||||
|
if (pathListLen > 0)
|
||||||
|
while (1)
|
||||||
|
let pathSpec = <SID>GetNthItemFromList(a:pathList, m)
|
||||||
|
if (pathSpec != "")
|
||||||
|
let path = <SID>ExpandAlternatePath(pathSpec, a:relPathBase)
|
||||||
|
let fullname = path . "/" . a:fileName
|
||||||
|
let foundMatch = <SID>BufferOrFileExists(fullname)
|
||||||
|
if (foundMatch)
|
||||||
|
let filepath = fullname
|
||||||
|
break
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
break
|
||||||
|
endif
|
||||||
|
let m = m + 1
|
||||||
|
endwhile
|
||||||
|
endif
|
||||||
|
return filepath
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Function : FindFileInSearchPathEx (PRIVATE)
|
||||||
|
" Purpose : Searches for a file in the search path list
|
||||||
|
" Args : filename -- name of the file to search for
|
||||||
|
" pathList -- the path list to search
|
||||||
|
" relPathBase -- the path which relative paths are expanded from
|
||||||
|
" count -- find the count'th occurence of the file on the path
|
||||||
|
" Returns : An expanded filename if found, the empty string otherwise
|
||||||
|
" Author : Michael Sharpe (feline@irendi.com)
|
||||||
|
" History : Based on <SID>FindFileInSearchPath() but with extensions
|
||||||
|
function! <SID>FindFileInSearchPathEx(fileName, pathList, relPathBase, count)
|
||||||
|
let filepath = ""
|
||||||
|
let m = 1
|
||||||
|
let spath = ""
|
||||||
|
let pathListLen = strlen(a:pathList)
|
||||||
|
if (pathListLen > 0)
|
||||||
|
while (1)
|
||||||
|
let pathSpec = <SID>GetNthItemFromList(a:pathList, m)
|
||||||
|
if (pathSpec != "")
|
||||||
|
let path = <SID>ExpandAlternatePath(pathSpec, a:relPathBase)
|
||||||
|
if (spath != "")
|
||||||
|
let spath = spath . ','
|
||||||
|
endif
|
||||||
|
let spath = spath . path
|
||||||
|
else
|
||||||
|
break
|
||||||
|
endif
|
||||||
|
let m = m + 1
|
||||||
|
endwhile
|
||||||
|
endif
|
||||||
|
|
||||||
|
if (&path != "")
|
||||||
|
if (spath != "")
|
||||||
|
let spath = spath . ','
|
||||||
|
endif
|
||||||
|
let spath = spath . &path
|
||||||
|
endif
|
||||||
|
|
||||||
|
let filepath = findfile(a:fileName, spath, a:count)
|
||||||
|
return filepath
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Function : EnumerateFilesByExtension (PRIVATE)
|
||||||
|
" Purpose : enumerates all files by a particular list of alternate extensions.
|
||||||
|
" Args : path -- path of a file (not including the file)
|
||||||
|
" baseName -- base name of the file to be expanded
|
||||||
|
" extension -- extension whose alternates are to be enumerated
|
||||||
|
" Returns : comma separated list of files with extensions
|
||||||
|
" Author : Michael Sharpe <feline@irendi.com>
|
||||||
|
function! EnumerateFilesByExtension(path, baseName, extension)
|
||||||
|
let enumeration = ""
|
||||||
|
let extSpec = ""
|
||||||
|
let v:errmsg = ""
|
||||||
|
silent! echo g:alternateExtensions_{a:extension}
|
||||||
|
if (v:errmsg == "")
|
||||||
|
let extSpec = g:alternateExtensions_{a:extension}
|
||||||
|
endif
|
||||||
|
if (extSpec == "")
|
||||||
|
if (has_key(g:alternateExtensionsDict, a:extension))
|
||||||
|
let extSpec = g:alternateExtensionsDict[a:extension]
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
if (extSpec != "")
|
||||||
|
let n = 1
|
||||||
|
let done = 0
|
||||||
|
while (!done)
|
||||||
|
let ext = <SID>GetNthItemFromList(extSpec, n)
|
||||||
|
if (ext != "")
|
||||||
|
if (a:path != "")
|
||||||
|
let newFilename = a:path . "/" . a:baseName . "." . ext
|
||||||
|
else
|
||||||
|
let newFilename = a:baseName . "." . ext
|
||||||
|
endif
|
||||||
|
if (enumeration == "")
|
||||||
|
let enumeration = newFilename
|
||||||
|
else
|
||||||
|
let enumeration = enumeration . "," . newFilename
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
let done = 1
|
||||||
|
endif
|
||||||
|
let n = n + 1
|
||||||
|
endwhile
|
||||||
|
endif
|
||||||
|
return enumeration
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Function : EnumerateFilesByExtensionInPath (PRIVATE)
|
||||||
|
" Purpose : enumerates all files by expanding the path list and the extension
|
||||||
|
" list.
|
||||||
|
" Args : baseName -- base name of the file
|
||||||
|
" extension -- extension whose alternates are to be enumerated
|
||||||
|
" pathList -- the list of paths to enumerate
|
||||||
|
" relPath -- the path of the current file for expansion of relative
|
||||||
|
" paths in the path list.
|
||||||
|
" Returns : A comma separated list of paths with extensions
|
||||||
|
" Author : Michael Sharpe <feline@irendi.com>
|
||||||
|
function! EnumerateFilesByExtensionInPath(baseName, extension, pathList, relPathBase)
|
||||||
|
let enumeration = ""
|
||||||
|
let filepath = ""
|
||||||
|
let m = 1
|
||||||
|
let pathListLen = strlen(a:pathList)
|
||||||
|
if (pathListLen > 0)
|
||||||
|
while (1)
|
||||||
|
let pathSpec = <SID>GetNthItemFromList(a:pathList, m)
|
||||||
|
if (pathSpec != "")
|
||||||
|
let path = <SID>ExpandAlternatePath(pathSpec, a:relPathBase)
|
||||||
|
let pe = EnumerateFilesByExtension(path, a:baseName, a:extension)
|
||||||
|
if (enumeration == "")
|
||||||
|
let enumeration = pe
|
||||||
|
else
|
||||||
|
let enumeration = enumeration . "," . pe
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
break
|
||||||
|
endif
|
||||||
|
let m = m + 1
|
||||||
|
endwhile
|
||||||
|
endif
|
||||||
|
return enumeration
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Function : DetermineExtension (PRIVATE)
|
||||||
|
" Purpose : Determines the extension of a filename based on the register
|
||||||
|
" alternate extension. This allow extension which contain dots to
|
||||||
|
" be considered. E.g. foo.aspx.cs to foo.aspx where an alternate
|
||||||
|
" exists for the aspx.cs extension. Note that this will only accept
|
||||||
|
" extensions which contain less than 5 dots. This is only
|
||||||
|
" implemented in this manner for simplicity...it is doubtful that
|
||||||
|
" this will be a restriction in non-contrived situations.
|
||||||
|
" Args : The path to the file to find the extension in
|
||||||
|
" Returns : The matched extension if any
|
||||||
|
" Author : Michael Sharpe (feline@irendi.com)
|
||||||
|
" History : idea from Tom-Erik Duestad
|
||||||
|
" Notes : there is some magic occuring here. The exists() function does not
|
||||||
|
" work well when the curly brace variable has dots in it. And why
|
||||||
|
" should it, dots are not valid in variable names. But the exists
|
||||||
|
" function is wierd too. Lets say foo_c does exist. Then
|
||||||
|
" exists("foo_c.e.f") will be true...even though the variable does
|
||||||
|
" not exist. However the curly brace variables do work when the
|
||||||
|
" variable has dots in it. E.g foo_{'c'} is different from
|
||||||
|
" foo_{'c.d.e'}...and foo_{'c'} is identical to foo_c and
|
||||||
|
" foo_{'c.d.e'} is identical to foo_c.d.e right? Yes in the current
|
||||||
|
" implementation of vim. To trick vim to test for existence of such
|
||||||
|
" variables echo the curly brace variable and look for an error
|
||||||
|
" message.
|
||||||
|
function! DetermineExtension(path)
|
||||||
|
let mods = ":t"
|
||||||
|
let i = 0
|
||||||
|
while i <= s:maxDotsInExtension
|
||||||
|
let mods = mods . ":e"
|
||||||
|
let extension = fnamemodify(a:path, mods)
|
||||||
|
if (has_key(g:alternateExtensionsDict, extension))
|
||||||
|
return extension
|
||||||
|
endif
|
||||||
|
let v:errmsg = ""
|
||||||
|
silent! echo g:alternateExtensions_{extension}
|
||||||
|
if (v:errmsg == "")
|
||||||
|
return extension
|
||||||
|
endif
|
||||||
|
let i = i + 1
|
||||||
|
endwhile
|
||||||
|
return ""
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Function : AlternateFile (PUBLIC)
|
||||||
|
" Purpose : Opens a new buffer by looking at the extension of the current
|
||||||
|
" buffer and finding the corresponding file. E.g. foo.c <--> foo.h
|
||||||
|
" Args : accepts one argument. If present it used the argument as the new
|
||||||
|
" extension.
|
||||||
|
" Returns : nothing
|
||||||
|
" Author : Michael Sharpe <feline@irendi.com>
|
||||||
|
" History : + When an alternate can't be found in the same directory as the
|
||||||
|
" source file, a search path will be traversed looking for the
|
||||||
|
" alternates.
|
||||||
|
" + Moved some code into a separate function, minor optimization
|
||||||
|
" + rework to favor files in memory based on complete enumeration of
|
||||||
|
" all files extensions and paths
|
||||||
|
function! AlternateFile(splitWindow, ...)
|
||||||
|
let extension = DetermineExtension(expand("%:p"))
|
||||||
|
let baseName = substitute(expand("%:t"), "\." . extension . '$', "", "")
|
||||||
|
let currentPath = expand("%:p:h")
|
||||||
|
|
||||||
|
if (a:0 != 0)
|
||||||
|
let newFullname = currentPath . "/" . baseName . "." . a:1
|
||||||
|
call <SID>FindOrCreateBuffer(newFullname, a:splitWindow, 0)
|
||||||
|
else
|
||||||
|
let allfiles = ""
|
||||||
|
if (extension != "")
|
||||||
|
let allfiles1 = EnumerateFilesByExtension(currentPath, baseName, extension)
|
||||||
|
let allfiles2 = EnumerateFilesByExtensionInPath(baseName, extension, g:alternateSearchPath, currentPath)
|
||||||
|
|
||||||
|
if (allfiles1 != "")
|
||||||
|
if (allfiles2 != "")
|
||||||
|
let allfiles = allfiles1 . ',' . allfiles2
|
||||||
|
else
|
||||||
|
let allfiles = allfiles1
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
let allfiles = allfiles2
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
if (allfiles != "")
|
||||||
|
let bestFile = ""
|
||||||
|
let bestScore = 0
|
||||||
|
let score = 0
|
||||||
|
let n = 1
|
||||||
|
|
||||||
|
let onefile = <SID>GetNthItemFromList(allfiles, n)
|
||||||
|
let bestFile = onefile
|
||||||
|
while (onefile != "" && score < 2)
|
||||||
|
let score = <SID>BufferOrFileExists(onefile)
|
||||||
|
if (score > bestScore)
|
||||||
|
let bestScore = score
|
||||||
|
let bestFile = onefile
|
||||||
|
endif
|
||||||
|
let n = n + 1
|
||||||
|
let onefile = <SID>GetNthItemFromList(allfiles, n)
|
||||||
|
endwhile
|
||||||
|
|
||||||
|
if (bestScore == 0 && g:alternateNoDefaultAlternate == 1)
|
||||||
|
echo "No existing alternate available"
|
||||||
|
else
|
||||||
|
call <SID>FindOrCreateBuffer(bestFile, a:splitWindow, 1)
|
||||||
|
let b:AlternateAllFiles = allfiles
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
echo "No alternate file/buffer available"
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Function : AlternateOpenFileUnderCursor (PUBLIC)
|
||||||
|
" Purpose : Opens file under the cursor
|
||||||
|
" Args : splitWindow -- indicates how to open the file
|
||||||
|
" Returns : Nothing
|
||||||
|
" Author : Michael Sharpe (feline@irendi.com) www.irendi.com
|
||||||
|
function! AlternateOpenFileUnderCursor(splitWindow,...)
|
||||||
|
let cursorFile = (a:0 > 0) ? a:1 : expand("<cfile>")
|
||||||
|
let currentPath = expand("%:p:h")
|
||||||
|
let openCount = 1
|
||||||
|
|
||||||
|
let fileName = <SID>FindFileInSearchPathEx(cursorFile, g:alternateSearchPath, currentPath, openCount)
|
||||||
|
if (fileName != "")
|
||||||
|
call <SID>FindOrCreateBuffer(fileName, a:splitWindow, 1)
|
||||||
|
let b:openCount = openCount
|
||||||
|
let b:cursorFile = cursorFile
|
||||||
|
let b:currentPath = currentPath
|
||||||
|
else
|
||||||
|
echo "Can't find file"
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Function : AlternateOpenNextFile (PUBLIC)
|
||||||
|
" Purpose : Opens the next file corresponding to the search which found the
|
||||||
|
" current file
|
||||||
|
" Args : bang -- indicates what to do if the current file has not been
|
||||||
|
" saved
|
||||||
|
" Returns : nothing
|
||||||
|
" Author : Michael Sharpe (feline@irendi.com) www.irendi.com
|
||||||
|
function! AlternateOpenNextFile(bang)
|
||||||
|
let cursorFile = ""
|
||||||
|
if (exists("b:cursorFile"))
|
||||||
|
let cursorFile = b:cursorFile
|
||||||
|
endif
|
||||||
|
|
||||||
|
let currentPath = ""
|
||||||
|
if (exists("b:currentPath"))
|
||||||
|
let currentPath = b:currentPath
|
||||||
|
endif
|
||||||
|
|
||||||
|
let openCount = 0
|
||||||
|
if (exists("b:openCount"))
|
||||||
|
let openCount = b:openCount + 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
if (cursorFile != "" && currentPath != "" && openCount != 0)
|
||||||
|
let fileName = <SID>FindFileInSearchPathEx(cursorFile, g:alternateSearchPath, currentPath, openCount)
|
||||||
|
if (fileName != "")
|
||||||
|
call <SID>FindOrCreateBuffer(fileName, "n".a:bang, 0)
|
||||||
|
let b:openCount = openCount
|
||||||
|
let b:cursorFile = cursorFile
|
||||||
|
let b:currentPath = currentPath
|
||||||
|
else
|
||||||
|
let fileName = <SID>FindFileInSearchPathEx(cursorFile, g:alternateSearchPath, currentPath, 1)
|
||||||
|
if (fileName != "")
|
||||||
|
call <SID>FindOrCreateBuffer(fileName, "n".a:bang, 0)
|
||||||
|
let b:openCount = 1
|
||||||
|
let b:cursorFile = cursorFile
|
||||||
|
let b:currentPath = currentPath
|
||||||
|
else
|
||||||
|
echo "Can't find next file"
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
comm! -nargs=? -bang IH call AlternateOpenFileUnderCursor("n<bang>", <f-args>)
|
||||||
|
comm! -nargs=? -bang IHS call AlternateOpenFileUnderCursor("h<bang>", <f-args>)
|
||||||
|
comm! -nargs=? -bang IHV call AlternateOpenFileUnderCursor("v<bang>", <f-args>)
|
||||||
|
comm! -nargs=? -bang IHT call AlternateOpenFileUnderCursor("t<bang>", <f-args>)
|
||||||
|
comm! -nargs=? -bang IHN call AlternateOpenNextFile("<bang>")
|
||||||
|
imap <Leader>ih <ESC>:IHS<CR>
|
||||||
|
nmap <Leader>ih :IHS<CR>
|
||||||
|
imap <Leader>is <ESC>:IHS<CR>:A<CR>
|
||||||
|
nmap <Leader>is :IHS<CR>:A<CR>
|
||||||
|
imap <Leader>ihn <ESC>:IHN<CR>
|
||||||
|
nmap <Leader>ihn :IHN<CR>
|
||||||
|
|
||||||
|
"function! <SID>PrintList(theList)
|
||||||
|
" let n = 1
|
||||||
|
" let oneFile = <SID>GetNthItemFromList(a:theList, n)
|
||||||
|
" while (oneFile != "")
|
||||||
|
" let n = n + 1
|
||||||
|
" let oneFile = <SID>GetNthItemFromList(a:theList, n)
|
||||||
|
" endwhile
|
||||||
|
"endfunction
|
||||||
|
|
||||||
|
" Function : NextAlternate (PUBLIC)
|
||||||
|
" Purpose : Used to cycle through any other alternate file which existed on
|
||||||
|
" the search path.
|
||||||
|
" Args : bang (IN) - used to implement the AN vs AN! functionality
|
||||||
|
" Returns : nothing
|
||||||
|
" Author : Michael Sharpe <feline@irendi.com>
|
||||||
|
function! NextAlternate(bang)
|
||||||
|
if (exists('b:AlternateAllFiles'))
|
||||||
|
let currentFile = expand("%")
|
||||||
|
let n = 1
|
||||||
|
let onefile = <SID>GetNthItemFromList(b:AlternateAllFiles, n)
|
||||||
|
while (onefile != "" && !<SID>EqualFilePaths(fnamemodify(onefile,":p"), fnamemodify(currentFile,":p")))
|
||||||
|
let n = n + 1
|
||||||
|
let onefile = <SID>GetNthItemFromList(b:AlternateAllFiles, n)
|
||||||
|
endwhile
|
||||||
|
|
||||||
|
if (onefile != "")
|
||||||
|
let stop = n
|
||||||
|
let n = n + 1
|
||||||
|
let foundAlternate = 0
|
||||||
|
let nextAlternate = ""
|
||||||
|
while (n != stop)
|
||||||
|
let nextAlternate = <SID>GetNthItemFromList(b:AlternateAllFiles, n)
|
||||||
|
if (nextAlternate == "")
|
||||||
|
let n = 1
|
||||||
|
continue
|
||||||
|
endif
|
||||||
|
let n = n + 1
|
||||||
|
if (<SID>EqualFilePaths(fnamemodify(nextAlternate, ":p"), fnamemodify(currentFile, ":p")))
|
||||||
|
continue
|
||||||
|
endif
|
||||||
|
if (filereadable(nextAlternate))
|
||||||
|
" on cygwin filereadable("foo.H") returns true if "foo.h" exists
|
||||||
|
if (has("unix") && $WINDIR != "" && fnamemodify(nextAlternate, ":p") ==? fnamemodify(currentFile, ":p"))
|
||||||
|
continue
|
||||||
|
endif
|
||||||
|
let foundAlternate = 1
|
||||||
|
break
|
||||||
|
endif
|
||||||
|
endwhile
|
||||||
|
if (foundAlternate == 1)
|
||||||
|
let s:AlternateAllFiles = b:AlternateAllFiles
|
||||||
|
"silent! execute ":e".a:bang." " . nextAlternate
|
||||||
|
call <SID>FindOrCreateBuffer(nextAlternate, "n".a:bang, 0)
|
||||||
|
let b:AlternateAllFiles = s:AlternateAllFiles
|
||||||
|
else
|
||||||
|
echo "Only this alternate file exists"
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
echo "Could not find current file in alternates list"
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
echo "No other alternate files exist"
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
comm! -nargs=? -bang A call AlternateFile("n<bang>", <f-args>)
|
||||||
|
comm! -nargs=? -bang AS call AlternateFile("h<bang>", <f-args>)
|
||||||
|
comm! -nargs=? -bang AV call AlternateFile("v<bang>", <f-args>)
|
||||||
|
comm! -nargs=? -bang AT call AlternateFile("t<bang>", <f-args>)
|
||||||
|
comm! -nargs=? -bang AN call NextAlternate("<bang>")
|
||||||
|
|
||||||
|
" Function : BufferOrFileExists (PRIVATE)
|
||||||
|
" Purpose : determines if a buffer or a readable file exists
|
||||||
|
" Args : fileName (IN) - name of the file to check
|
||||||
|
" Returns : 2 if it exists in memory, 1 if it exists, 0 otherwise
|
||||||
|
" Author : Michael Sharpe <feline@irendi.com>
|
||||||
|
" History : Updated code to handle buffernames using just the
|
||||||
|
" filename and not the path.
|
||||||
|
function! <SID>BufferOrFileExists(fileName)
|
||||||
|
let result = 0
|
||||||
|
|
||||||
|
let lastBuffer = bufnr("$")
|
||||||
|
let i = 1
|
||||||
|
while i <= lastBuffer
|
||||||
|
if <SID>EqualFilePaths(expand("#".i.":p"), a:fileName)
|
||||||
|
let result = 2
|
||||||
|
break
|
||||||
|
endif
|
||||||
|
let i = i + 1
|
||||||
|
endwhile
|
||||||
|
|
||||||
|
if (!result)
|
||||||
|
let bufName = fnamemodify(a:fileName,":t")
|
||||||
|
let memBufName = bufname(bufName)
|
||||||
|
if (memBufName != "")
|
||||||
|
let memBufBasename = fnamemodify(memBufName, ":t")
|
||||||
|
if (bufName == memBufBasename)
|
||||||
|
let result = 2
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
if (!result)
|
||||||
|
let result = bufexists(bufName) || bufexists(a:fileName) || filereadable(a:fileName)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
if (!result)
|
||||||
|
let result = filereadable(a:fileName)
|
||||||
|
endif
|
||||||
|
return result
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Function : FindOrCreateBuffer (PRIVATE)
|
||||||
|
" Purpose : searches the buffer list (:ls) for the specified filename. If
|
||||||
|
" found, checks the window list for the buffer. If the buffer is in
|
||||||
|
" an already open window, it switches to the window. If the buffer
|
||||||
|
" was not in a window, it switches to that buffer. If the buffer did
|
||||||
|
" not exist, it creates it.
|
||||||
|
" Args : filename (IN) -- the name of the file
|
||||||
|
" doSplit (IN) -- indicates whether the window should be split
|
||||||
|
" ("v", "h", "n", "v!", "h!", "n!", "t", "t!")
|
||||||
|
" findSimilar (IN) -- indicate weather existing buffers should be
|
||||||
|
" prefered
|
||||||
|
" Returns : nothing
|
||||||
|
" Author : Michael Sharpe <feline@irendi.com>
|
||||||
|
" History : + bufname() was not working very well with the possibly strange
|
||||||
|
" paths that can abound with the search path so updated this
|
||||||
|
" slightly. -- Bindu
|
||||||
|
" + updated window switching code to make it more efficient -- Bindu
|
||||||
|
" Allow ! to be applied to buffer/split/editing commands for more
|
||||||
|
" vim/vi like consistency
|
||||||
|
" + implemented fix from Matt Perry
|
||||||
|
function! <SID>FindOrCreateBuffer(fileName, doSplit, findSimilar)
|
||||||
|
" Check to see if the buffer is already open before re-opening it.
|
||||||
|
let FILENAME = escape(a:fileName, ' ')
|
||||||
|
let bufNr = -1
|
||||||
|
let lastBuffer = bufnr("$")
|
||||||
|
let i = 1
|
||||||
|
if (a:findSimilar)
|
||||||
|
while i <= lastBuffer
|
||||||
|
if <SID>EqualFilePaths(expand("#".i.":p"), a:fileName)
|
||||||
|
let bufNr = i
|
||||||
|
break
|
||||||
|
endif
|
||||||
|
let i = i + 1
|
||||||
|
endwhile
|
||||||
|
|
||||||
|
if (bufNr == -1)
|
||||||
|
let bufName = bufname(a:fileName)
|
||||||
|
let bufFilename = fnamemodify(a:fileName,":t")
|
||||||
|
|
||||||
|
if (bufName == "")
|
||||||
|
let bufName = bufname(bufFilename)
|
||||||
|
endif
|
||||||
|
|
||||||
|
if (bufName != "")
|
||||||
|
let tail = fnamemodify(bufName, ":t")
|
||||||
|
if (tail != bufFilename)
|
||||||
|
let bufName = ""
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
if (bufName != "")
|
||||||
|
let bufNr = bufnr(bufName)
|
||||||
|
let FILENAME = bufName
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
if (g:alternateRelativeFiles == 1)
|
||||||
|
let FILENAME = fnamemodify(FILENAME, ":p:.")
|
||||||
|
endif
|
||||||
|
|
||||||
|
let splitType = a:doSplit[0]
|
||||||
|
let bang = a:doSplit[1]
|
||||||
|
if (bufNr == -1)
|
||||||
|
" Buffer did not exist....create it
|
||||||
|
let v:errmsg=""
|
||||||
|
if (splitType == "h")
|
||||||
|
silent! execute ":split".bang." " . FILENAME
|
||||||
|
elseif (splitType == "v")
|
||||||
|
silent! execute ":vsplit".bang." " . FILENAME
|
||||||
|
elseif (splitType == "t")
|
||||||
|
silent! execute ":tab split".bang." " . FILENAME
|
||||||
|
else
|
||||||
|
silent! execute ":e".bang." " . FILENAME
|
||||||
|
endif
|
||||||
|
if (v:errmsg != "")
|
||||||
|
echo v:errmsg
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
|
||||||
|
" Find the correct tab corresponding to the existing buffer
|
||||||
|
let tabNr = -1
|
||||||
|
" iterate tab pages
|
||||||
|
for i in range(tabpagenr('$'))
|
||||||
|
" get the list of buffers in the tab
|
||||||
|
let tabList = tabpagebuflist(i + 1)
|
||||||
|
let idx = 0
|
||||||
|
" iterate each buffer in the list
|
||||||
|
while idx < len(tabList)
|
||||||
|
" if it matches the buffer we are looking for...
|
||||||
|
if (tabList[idx] == bufNr)
|
||||||
|
" ... save the number
|
||||||
|
let tabNr = i + 1
|
||||||
|
break
|
||||||
|
endif
|
||||||
|
let idx = idx + 1
|
||||||
|
endwhile
|
||||||
|
if (tabNr != -1)
|
||||||
|
break
|
||||||
|
endif
|
||||||
|
endfor
|
||||||
|
" switch the the tab containing the buffer
|
||||||
|
if (tabNr != -1)
|
||||||
|
execute "tabn ".tabNr
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Buffer was already open......check to see if it is in a window
|
||||||
|
let bufWindow = bufwinnr(bufNr)
|
||||||
|
if (bufWindow == -1)
|
||||||
|
" Buffer was not in a window so open one
|
||||||
|
let v:errmsg=""
|
||||||
|
if (splitType == "h")
|
||||||
|
silent! execute ":sbuffer".bang." " . FILENAME
|
||||||
|
elseif (splitType == "v")
|
||||||
|
silent! execute ":vert sbuffer " . FILENAME
|
||||||
|
elseif (splitType == "t")
|
||||||
|
silent! execute ":tab sbuffer " . FILENAME
|
||||||
|
else
|
||||||
|
silent! execute ":buffer".bang." " . FILENAME
|
||||||
|
endif
|
||||||
|
if (v:errmsg != "")
|
||||||
|
echo v:errmsg
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
" Buffer is already in a window so switch to the window
|
||||||
|
execute bufWindow."wincmd w"
|
||||||
|
if (bufWindow != winnr())
|
||||||
|
" something wierd happened...open the buffer
|
||||||
|
let v:errmsg=""
|
||||||
|
if (splitType == "h")
|
||||||
|
silent! execute ":split".bang." " . FILENAME
|
||||||
|
elseif (splitType == "v")
|
||||||
|
silent! execute ":vsplit".bang." " . FILENAME
|
||||||
|
elseif (splitType == "t")
|
||||||
|
silent! execute ":tab split".bang." " . FILENAME
|
||||||
|
else
|
||||||
|
silent! execute ":e".bang." " . FILENAME
|
||||||
|
endif
|
||||||
|
if (v:errmsg != "")
|
||||||
|
echo v:errmsg
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Function : EqualFilePaths (PRIVATE)
|
||||||
|
" Purpose : Compares two paths. Do simple string comparison anywhere but on
|
||||||
|
" Windows. On Windows take into account that file paths could differ
|
||||||
|
" in usage of separators and the fact that case does not matter.
|
||||||
|
" "c:\WINDOWS" is the same path as "c:/windows". has("win32unix") Vim
|
||||||
|
" version does not count as one having Windows path rules.
|
||||||
|
" Args : path1 (IN) -- first path
|
||||||
|
" path2 (IN) -- second path
|
||||||
|
" Returns : 1 if path1 is equal to path2, 0 otherwise.
|
||||||
|
" Author : Ilya Bobir <ilya@po4ta.com>
|
||||||
|
function! <SID>EqualFilePaths(path1, path2)
|
||||||
|
if has("win16") || has("win32") || has("win64") || has("win95")
|
||||||
|
return substitute(a:path1, "\/", "\\", "g") ==? substitute(a:path2, "\/", "\\", "g")
|
||||||
|
else
|
||||||
|
return a:path1 == a:path2
|
||||||
|
endif
|
||||||
|
endfunction
|
513
vim_plugins_src/bufexplorer/doc/bufexplorer.txt
Normal file
513
vim_plugins_src/bufexplorer/doc/bufexplorer.txt
Normal file
|
@ -0,0 +1,513 @@
|
||||||
|
*bufexplorer.txt* Buffer Explorer Last Change: 22 Oct 2010
|
||||||
|
|
||||||
|
Buffer Explorer *buffer-explorer* *bufexplorer*
|
||||||
|
Version 7.2.8
|
||||||
|
|
||||||
|
Plugin for easily exploring (or browsing) Vim |:buffers|.
|
||||||
|
|
||||||
|
|bufexplorer-installation| Installation
|
||||||
|
|bufexplorer-usage| Usage
|
||||||
|
|bufexplorer-windowlayout| Window Layout
|
||||||
|
|bufexplorer-customization| Customization
|
||||||
|
|bufexplorer-changelog| Change Log
|
||||||
|
|bufexplorer-todo| Todo
|
||||||
|
|bufexplorer-credits| Credits
|
||||||
|
|
||||||
|
For Vim version 7.0 and above.
|
||||||
|
This plugin is only available if 'compatible' is not set.
|
||||||
|
|
||||||
|
{Vi does not have any of this}
|
||||||
|
|
||||||
|
==============================================================================
|
||||||
|
INSTALLATION *bufexplorer-installation*
|
||||||
|
|
||||||
|
To install:
|
||||||
|
- Download the bufexplorer.zip.
|
||||||
|
- Extract the zip archive into your runtime directory.
|
||||||
|
The archive contains plugin/bufexplorer.vim, and doc/bufexplorer.txt.
|
||||||
|
- Start Vim or goto an existing instance of Vim.
|
||||||
|
- Execute the following command:
|
||||||
|
>
|
||||||
|
:helptag <your runtime directory>/doc
|
||||||
|
<
|
||||||
|
This will generate all the help tags for any file located in the doc
|
||||||
|
directory.
|
||||||
|
|
||||||
|
==============================================================================
|
||||||
|
USAGE *bufexplorer-usage*
|
||||||
|
|
||||||
|
To start exploring in the current window, use: >
|
||||||
|
\be or :BufExplorer
|
||||||
|
To start exploring in a newly split horizontal window, use: >
|
||||||
|
\bs or :BufExplorerHorizontalSplit
|
||||||
|
To start exploring in a newly split vertical window, use: >
|
||||||
|
\bv or :BufExplorerVerticalSplit
|
||||||
|
|
||||||
|
If you would like to use something other than '\', you may simply change the
|
||||||
|
leader (see |mapleader|).
|
||||||
|
|
||||||
|
Note: If the current buffer is modified when bufexplorer started, the current
|
||||||
|
window is always split and the new bufexplorer is displayed in that new
|
||||||
|
window.
|
||||||
|
|
||||||
|
Commands to use once exploring:
|
||||||
|
|
||||||
|
<F1> Toggle help information.
|
||||||
|
<enter> Opens the buffer that is under the cursor into the current
|
||||||
|
window.
|
||||||
|
<leftmouse> Opens the buffer that is under the cursor into the current
|
||||||
|
window.
|
||||||
|
<shift-enter> Opens the buffer that is under the cursor in another tab.
|
||||||
|
d |:delete|the buffer under the cursor from the list. The
|
||||||
|
buffer's 'buflisted' is cleared. This allows for the buffer to
|
||||||
|
be displayed again using the 'show unlisted' command.
|
||||||
|
R Toggles relative path/absolute path.
|
||||||
|
T Toggles to show only buffers for this tab or not.
|
||||||
|
D |:wipeout|the buffer under the cursor from the list. When a
|
||||||
|
buffers is wiped, it will not be shown when unlisted buffer are
|
||||||
|
displayed.
|
||||||
|
f Toggles whether you are taken to the active window when
|
||||||
|
selecting a buffer or not.
|
||||||
|
o Opens the buffer that is under the cursor into the current
|
||||||
|
window.
|
||||||
|
p Toggles the showing of a split filename/pathname.
|
||||||
|
q Quit exploring.
|
||||||
|
r Reverses the order the buffers are listed in.
|
||||||
|
s Selects the order the buffers are listed in. Either by buffer
|
||||||
|
number, file name, file extension, most recently used (MRU), or
|
||||||
|
full path.
|
||||||
|
t Opens the buffer that is under the cursor in another tab.
|
||||||
|
u Toggles the showing of "unlisted" buffers.
|
||||||
|
|
||||||
|
Once invoked, Buffer Explorer displays a sorted list (MRU is the default
|
||||||
|
sort method) of all the buffers that are currently opened. You are then
|
||||||
|
able to move the cursor to the line containing the buffer's name you are
|
||||||
|
wanting to act upon. Once you have selected the buffer you would like,
|
||||||
|
you can then either open it, close it(delete), resort the list, reverse
|
||||||
|
the sort, quit exploring and so on...
|
||||||
|
|
||||||
|
===============================================================================
|
||||||
|
WINDOW LAYOUT *bufexplorer-windowlayout*
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
" Press <F1> for Help
|
||||||
|
" Sorted by mru | Locate buffer | Absolute Split path
|
||||||
|
"=
|
||||||
|
01 %a bufexplorer.txt C:\Vim\vimfiles\doc line 87
|
||||||
|
02 # bufexplorer.vim c:\Vim\vimfiles\plugin line 1
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
| | | | |
|
||||||
|
| | | | +-- Current Line #.
|
||||||
|
| | | +-- Relative/Full Path
|
||||||
|
| | +-- Buffer Name.
|
||||||
|
| +-- Buffer Attributes. See|:buffers|for more information.
|
||||||
|
+-- Buffer Number. See|:buffers|for more information.
|
||||||
|
|
||||||
|
===============================================================================
|
||||||
|
CUSTOMIZATION *bufexplorer-customization*
|
||||||
|
|
||||||
|
*g:bufExplorerChgWin*
|
||||||
|
If set, bufexplorer will bring up the selected buffer in the window specified
|
||||||
|
by g:bufExplorerChgWin.
|
||||||
|
|
||||||
|
*g:bufExplorerDefaultHelp*
|
||||||
|
To control whether the default help is displayed or not, use: >
|
||||||
|
let g:bufExplorerDefaultHelp=0 " Do not show default help.
|
||||||
|
let g:bufExplorerDefaultHelp=1 " Show default help.
|
||||||
|
The default is to show the default help.
|
||||||
|
|
||||||
|
*g:bufExplorerDetailedHelp*
|
||||||
|
To control whether detailed help is display by, use: >
|
||||||
|
let g:bufExplorerDetailedHelp=0 " Do not show detailed help.
|
||||||
|
let g:bufExplorerDetailedHelp=1 " Show detailed help.
|
||||||
|
The default is NOT to show detailed help.
|
||||||
|
|
||||||
|
*g:bufExplorerFindActive*
|
||||||
|
To control whether you are taken to the active window when selecting a buffer,
|
||||||
|
use: >
|
||||||
|
let g:bufExplorerFindActive=0 " Do not go to active window.
|
||||||
|
let g:bufExplorerFindActive=1 " Go to active window.
|
||||||
|
The default is to be taken to the active window.
|
||||||
|
|
||||||
|
*g:bufExplorerFuncRef*
|
||||||
|
When a buffer is selected, the functions specified either singly or as a list
|
||||||
|
will be called.
|
||||||
|
|
||||||
|
*g:bufExplorerReverseSort*
|
||||||
|
To control whether to sort the buffer in reverse order or not, use: >
|
||||||
|
let g:bufExplorerReverseSort=0 " Do not sort in reverse order.
|
||||||
|
let g:bufExplorerReverseSort=1 " Sort in reverse order.
|
||||||
|
The default is NOT to sort in reverse order.
|
||||||
|
|
||||||
|
*g:bufExplorerShowDirectories*
|
||||||
|
Directories usually show up in the list from using a command like ":e .".
|
||||||
|
To control whether to show directories in the buffer list or not, use: >
|
||||||
|
let g:bufExplorerShowDirectories=1 " Show directories.
|
||||||
|
let g:bufExplorerShowDirectories=0 " Don't show directories.
|
||||||
|
The default is to show directories.
|
||||||
|
|
||||||
|
*g:bufExplorerShowRelativePath*
|
||||||
|
To control whether to show absolute paths or relative to the current
|
||||||
|
directory, use: >
|
||||||
|
let g:bufExplorerShowRelativePath=0 " Show absolute paths.
|
||||||
|
let g:bufExplorerShowRelativePath=1 " Show relative paths.
|
||||||
|
The default is to show absolute paths.
|
||||||
|
|
||||||
|
*g:bufExplorerShowTabBuffer*
|
||||||
|
To control weither or not to show buffers on for the specific tab or not, use: >
|
||||||
|
let g:bufExplorerShowTabBuffer=0 " No.
|
||||||
|
let g:bufExplorerShowTabBuffer=1 " Yes.
|
||||||
|
The default is not to show.
|
||||||
|
|
||||||
|
*g:bufExplorerShowUnlisted*
|
||||||
|
To control whether to show unlisted buffer or not, use: >
|
||||||
|
let g:bufExplorerShowUnlisted=0 " Do not show unlisted buffers.
|
||||||
|
let g:bufExplorerShowUnlisted=1 " Show unlisted buffers.
|
||||||
|
The default is to NOT show unlisted buffers.
|
||||||
|
|
||||||
|
*g:bufExplorerSortBy*
|
||||||
|
To control what field the buffers are sorted by, use: >
|
||||||
|
let g:bufExplorerSortBy='extension' " Sort by file extension.
|
||||||
|
let g:bufExplorerSortBy='fullpath' " Sort by full file path name.
|
||||||
|
let g:bufExplorerSortBy='mru' " Sort by most recently used.
|
||||||
|
let g:bufExplorerSortBy='name' " Sort by the buffer's name.
|
||||||
|
let g:bufExplorerSortBy='number' " Sort by the buffer's number.
|
||||||
|
The default is to sort by mru.
|
||||||
|
|
||||||
|
*g:bufExplorerSplitBelow*
|
||||||
|
To control where the new split window will be placed above or below the
|
||||||
|
current window, use: >
|
||||||
|
let g:bufExplorerSplitBelow=1 " Split new window below current.
|
||||||
|
let g:bufExplorerSplitBelow=0 " Split new window above current.
|
||||||
|
The default is to use what ever is set by the global &splitbelow
|
||||||
|
variable.
|
||||||
|
|
||||||
|
*g:bufExplorerSplitOutPathName*
|
||||||
|
To control whether to split out the path and file name or not, use: >
|
||||||
|
let g:bufExplorerSplitOutPathName=1 " Split the path and file name.
|
||||||
|
let g:bufExplorerSplitOutPathName=0 " Don't split the path and file
|
||||||
|
" name.
|
||||||
|
The default is to split the path and file name.
|
||||||
|
|
||||||
|
*g:bufExplorerSplitRight*
|
||||||
|
To control where the new vsplit window will be placed to the left or right of
|
||||||
|
current window, use: >
|
||||||
|
let g:bufExplorerSplitRight=0 " Split left.
|
||||||
|
let g:bufExplorerSplitRight=1 " Split right.
|
||||||
|
The default is to use the global &splitright.
|
||||||
|
|
||||||
|
===============================================================================
|
||||||
|
CHANGE LOG *bufexplorer-changelog*
|
||||||
|
|
||||||
|
7.2.8 - Enhancements:
|
||||||
|
* Thanks to Charles Campbell for integrating bufexplorer with GDBMGR.
|
||||||
|
http://mysite.verizon.net/astronaut/vim/index.html#GDBMGR
|
||||||
|
7.2.7 - Fix:
|
||||||
|
* My 1st attempt to fix the "cache" issue where buffers information
|
||||||
|
has changed but the cache/display does not reflect those changes.
|
||||||
|
More work still needs to be done.
|
||||||
|
7.2.6 - Fix:
|
||||||
|
* Thanks to Michael Henry for pointing out that I totally forgot to
|
||||||
|
update the inline help to reflect the previous change to the 'd'
|
||||||
|
and 'D' keys. Opps!
|
||||||
|
7.2.5 - Fix:
|
||||||
|
* Philip Morant suggested switching the command (bwipe) associated
|
||||||
|
with the 'd' key with the command (bdelete) associated with the 'D'
|
||||||
|
key. This made sense since the 'd' key is more likely to be used
|
||||||
|
compared to the 'D' key.
|
||||||
|
7.2.4 - Fix:
|
||||||
|
* I did not implement the patch provided by Godefroid Chapelle
|
||||||
|
correctly. I missed one line which happened to be the most
|
||||||
|
important one :)
|
||||||
|
7.2.3 - Enhancements:
|
||||||
|
* Thanks to David Fishburn for helping me out with a much needed
|
||||||
|
code overhaul as well as some awesome performance enhancements.
|
||||||
|
He also reworked the handling of tabs.
|
||||||
|
* Thanks to Vladimir Dobriakov for making the suggestions on
|
||||||
|
enhancing the documentation to include a better explaination of
|
||||||
|
what is contained in the main bufexplorer window.
|
||||||
|
* Thanks to Yuriy Ershov for added code that when the bufexplorer
|
||||||
|
window is opened, the cursor is now positioned at the line with the
|
||||||
|
active buffer (useful in non-MRU sort modes).
|
||||||
|
* Yuriy also added the abiltiy to cycle through the sort fields in
|
||||||
|
reverse order.
|
||||||
|
Fixes:
|
||||||
|
* Thanks to Michael Henry for supplying a patch that allows
|
||||||
|
bufexplorer to be opened even when there is one buffer or less.
|
||||||
|
* Thanks to Godefroid Chapelle for supplying a patch that fixed
|
||||||
|
MRU sort order after loading a session.
|
||||||
|
7.2.2 - Fixes:
|
||||||
|
* Thanks to David L. Dight for spotting and fixing an issue when
|
||||||
|
using ctrl^. bufexplorer would incorrectly handle the previous
|
||||||
|
buffer so that when ctrl^ was pressed the incorrect file was opened.
|
||||||
|
7.2.1 - Fixes:
|
||||||
|
* Thanks to Dimitar for spotting and fixing a feature that was
|
||||||
|
inadvertently left out of the previous version. The feature was
|
||||||
|
when bufexplorer was used together with WinManager, you could use
|
||||||
|
the tab key to open a buffer in a split window.
|
||||||
|
7.2.0 - Enhancements:
|
||||||
|
* For all those missing the \bs and \bv commands, these have now
|
||||||
|
returned. Thanks to Phil O'Connell for asking for the return of
|
||||||
|
these missing features and helping test out this version.
|
||||||
|
Fixes:
|
||||||
|
* Fixed problem with the bufExplorerFindActive code not working
|
||||||
|
correctly.
|
||||||
|
* Fixed an incompatibility between bufexplorer and netrw that caused
|
||||||
|
buffers to be incorrectly removed from the MRU list.
|
||||||
|
7.1.7 - Fixes:
|
||||||
|
* TaCahiroy fixed several issues related to opening a buffer in a
|
||||||
|
tab.
|
||||||
|
7.1.6 - Fixes:
|
||||||
|
* Removed ff=unix from modeline in bufexplorer.txt. Found by Bill
|
||||||
|
McCarthy.
|
||||||
|
7.1.5 - Fixes:
|
||||||
|
* Could not open unnamed buffers. Fixed by TaCahiroy.
|
||||||
|
7.1.4 - Fixes:
|
||||||
|
* Sometimes when a file's path has 'white space' in it, extra buffers
|
||||||
|
would be created containing each piece of the path. i.e:
|
||||||
|
opening c:\document and settings\test.txt would create a buffer
|
||||||
|
named "and" and a buffer named "Documents". This was reported and
|
||||||
|
fixed by TaCa Yoss.
|
||||||
|
7.1.3 - Fixes:
|
||||||
|
* Added code to allow only one instance of the plugin to run at a
|
||||||
|
time. Thanks Dennis Hostetler.
|
||||||
|
7.1.2 - Fixes:
|
||||||
|
* Fixed a jumplist issue spotted by JiangJun. I overlooked the
|
||||||
|
'jumplist' and with a couple calls to 'keepjumps', everything is
|
||||||
|
fine again.
|
||||||
|
* Went back to just having a plugin file, no autoload file. By having
|
||||||
|
the autoload, WinManager was no longer working and without really
|
||||||
|
digging into the cause, it was easier to go back to using just a
|
||||||
|
plugin file.
|
||||||
|
7.1.1 - Fixes:
|
||||||
|
* A problem spotted by Thomas Arendsen Hein.
|
||||||
|
When running Vim (7.1.94), error E493 was being thrown.
|
||||||
|
Enhancements:
|
||||||
|
* Added 'D' for 'delete' buffer as the 'd' command was a 'wipe'
|
||||||
|
buffer.
|
||||||
|
7.1.0 - Another 'major' update, some by Dave Larson, some by me.
|
||||||
|
* Making use of 'autoload' now to make the plugin load quicker.
|
||||||
|
* Removed '\bs' and '\bv'. These are now controlled by the user. The
|
||||||
|
user can issue a ':sp' or ':vs' to create a horizontal or vertical
|
||||||
|
split window and then issue a '\be'
|
||||||
|
* Added handling of tabs.
|
||||||
|
7.0.17 - Fixed issue with 'drop' command.
|
||||||
|
Various enhancements and improvements.
|
||||||
|
7.0.16 - Fixed issue reported by Liu Jiaping on non Windows systems, which was
|
||||||
|
...
|
||||||
|
Open file1, open file2, modify file1, open bufexplorer, you get the
|
||||||
|
following error:
|
||||||
|
|
||||||
|
--------8<--------
|
||||||
|
Error detected while processing function
|
||||||
|
<SNR>14_StartBufExplorer..<SNR>14_SplitOpen:
|
||||||
|
line 4:
|
||||||
|
E37: No write since last change (add ! to override)
|
||||||
|
|
||||||
|
But the worse thing is, when I want to save the current buffer and
|
||||||
|
type ':w', I get another error message:
|
||||||
|
E382: Cannot write, 'buftype' option is set
|
||||||
|
--------8<--------
|
||||||
|
|
||||||
|
7.0.15 - Thanks to Mark Smithfield for suggesting bufexplorer needed to handle
|
||||||
|
the ':args' command.
|
||||||
|
7.0.14 - Thanks to Randall Hansen for removing the requirement of terminal
|
||||||
|
versions to be recompiled with 'gui' support so the 'drop' command
|
||||||
|
would work. The 'drop' command is really not needed in terminal
|
||||||
|
versions.
|
||||||
|
7.0.13 - Fixed integration with WinManager.
|
||||||
|
Thanks to Dave Eggum for another update.
|
||||||
|
- Fix: The detailed help didn't display the mapping for toggling
|
||||||
|
the split type, even though the split type is displayed.
|
||||||
|
- Fixed incorrect description in the detailed help for toggling
|
||||||
|
relative or full paths.
|
||||||
|
- Deprecated s:ExtractBufferNbr(). Vim's str2nr() does the same
|
||||||
|
thing.
|
||||||
|
- Created a s:Set() function that sets a variable only if it hasn't
|
||||||
|
already been defined. It's useful for initializing all those
|
||||||
|
default settings.
|
||||||
|
- Removed checks for repetitive command definitions. They were
|
||||||
|
unnecessary.
|
||||||
|
- Made the help highlighting a little more fancy.
|
||||||
|
- Minor reverse compatibility issue: Changed ambiguous setting
|
||||||
|
names to be more descriptive of what they do (also makes the code
|
||||||
|
easier to follow):
|
||||||
|
Changed bufExplorerSortDirection to bufExplorerReverseSort
|
||||||
|
Changed bufExplorerSplitType to bufExplorerSplitVertical
|
||||||
|
Changed bufExplorerOpenMode to bufExplorerUseCurrentWindow
|
||||||
|
- When the BufExplorer window closes, all the file-local marks are
|
||||||
|
now deleted. This may have the benefit of cleaning up some of the
|
||||||
|
jumplist.
|
||||||
|
- Changed the name of the parameter for StartBufExplorer from
|
||||||
|
"split" to "open". The parameter is a string which specifies how
|
||||||
|
the buffer will be open, not if it is split or not.
|
||||||
|
- Deprecated DoAnyMoreBuffersExist() - it is a one line function
|
||||||
|
only used in one spot.
|
||||||
|
- Created four functions (SplitOpen(), RebuildBufferList(),
|
||||||
|
UpdateHelpStatus() and ReSortListing()) all with one purpose - to
|
||||||
|
reduce repeated code.
|
||||||
|
- Changed the name of AddHeader() to CreateHelp() to be more
|
||||||
|
descriptive of what it does. It now returns an array instead of
|
||||||
|
updating the window directly. This has the benefit of making the
|
||||||
|
code more efficient since the text the function returns is used a
|
||||||
|
little differently in the two places the function is called.
|
||||||
|
- Other minor simplifications.
|
||||||
|
7.0.12 - MAJOR Update.
|
||||||
|
This version will ONLY run with Vim version 7.0 or greater.
|
||||||
|
Dave Eggum has made some 'significant' updates to this latest
|
||||||
|
version:
|
||||||
|
- Added BufExplorerGetAltBuf() global function to be used in the
|
||||||
|
user’s rulerformat.
|
||||||
|
- Added g:bufExplorerSplitRight option.
|
||||||
|
- Added g:bufExplorerShowRelativePath option with mapping.
|
||||||
|
- Added current line highlighting.
|
||||||
|
- The split type can now be changed whether bufexplorer is opened
|
||||||
|
in split mode or not.
|
||||||
|
- Various major and minor bug fixes and speed improvements.
|
||||||
|
- Sort by extension.
|
||||||
|
Other improvements/changes:
|
||||||
|
- Changed the help key from '?' to <F1> to be more 'standard'.
|
||||||
|
- Fixed splitting of vertical bufexplorer window.
|
||||||
|
Hopefully I have not forgot something :)
|
||||||
|
7.0.11 - Fixed a couple of highlighting bugs, reported by David Eggum. He also
|
||||||
|
changed passive voice to active on a couple of warning messages.
|
||||||
|
7.0.10 - Fixed bug report by Xiangjiang Ma. If the 'ssl' option is set,
|
||||||
|
the slash character used when displaying the path was incorrect.
|
||||||
|
7.0.9 - Martin Grenfell found and eliminated an annoying bug in the
|
||||||
|
bufexplorer/winmanager integration. The bug was were an
|
||||||
|
annoying message would be displayed when a window was split or
|
||||||
|
a new file was opened in a new window. Thanks Martin!
|
||||||
|
7.0.8 - Thanks to Mike Li for catching a bug in the WinManager integration.
|
||||||
|
The bug was related to the incorrect displaying of the buffer
|
||||||
|
explorer's window title.
|
||||||
|
7.0.7 - Thanks to Jeremy Cowgar for adding a new enhancement. This
|
||||||
|
enhancement allows the user to press 'S', that is capital S, which
|
||||||
|
will open the buffer under the cursor in a newly created split
|
||||||
|
window.
|
||||||
|
7.0.6 - Thanks to Larry Zhang for finding a bug in the "split" buffer code.
|
||||||
|
If you force set g:bufExplorerSplitType='v' in your vimrc, and if you
|
||||||
|
tried to do a \bs to split the bufexplorer window, it would always
|
||||||
|
split horizontal, not vertical. He also found that I had a typeo in
|
||||||
|
that the variable g:bufExplorerSplitVertSize was all lower case in
|
||||||
|
the documentation which was incorrect.
|
||||||
|
7.0.5 - Thanks to Mun Johl for pointing out a bug that if a buffer was
|
||||||
|
modified, the '+' was not showing up correctly.
|
||||||
|
7.0.4 - Fixed a problem discovered first by Xiangjiang Ma. Well since I've
|
||||||
|
been using vim 7.0 and not 6.3, I started using a function (getftype)
|
||||||
|
that is not in 6.3. So for backward compatibility, I conditionaly use
|
||||||
|
this function now. Thus, the g:bufExplorerShowDirectories feature is
|
||||||
|
only available when using vim 7.0 and above.
|
||||||
|
7.0.3 - Thanks to Erwin Waterlander for finding a problem when the last
|
||||||
|
buffer was deleted. This issue got me to rewrite the buffer display
|
||||||
|
logic (which I've wanted to do for sometime now).
|
||||||
|
Also great thanks to Dave Eggum for coming up with idea for
|
||||||
|
g:bufExplorerShowDirectories. Read the above information about this
|
||||||
|
feature.
|
||||||
|
7.0.2 - Thanks to Thomas Arendsen Hein for finding a problem when a user
|
||||||
|
has the default help turned off and then brought up the explorer. An
|
||||||
|
E493 would be displayed.
|
||||||
|
7.0.1 - Thanks to Erwin Waterlander for finding a couple problems.
|
||||||
|
The first problem allowed a modified buffer to be deleted. Opps! The
|
||||||
|
second problem occurred when several files were opened, BufExplorer
|
||||||
|
was started, the current buffer was deleted using the 'd' option, and
|
||||||
|
then BufExplorer was exited. The deleted buffer was still visible
|
||||||
|
while it is not in the buffers list. Opps again!
|
||||||
|
7.0.0 - Thanks to Shankar R. for suggesting to add the ability to set
|
||||||
|
the fixed width (g:bufExplorerSplitVertSize) of a new window
|
||||||
|
when opening bufexplorer vertically and fixed height
|
||||||
|
(g:bufExplorerSplitHorzSize) of a new window when opening
|
||||||
|
bufexplorer horizontally. By default, the windows are normally
|
||||||
|
split to use half the existing width or height.
|
||||||
|
6.3.0 - Added keepjumps so that the jumps list would not get cluttered with
|
||||||
|
bufexplorer related stuff.
|
||||||
|
6.2.3 - Thanks to Jay Logan for finding a bug in the vertical split position
|
||||||
|
of the code. When selecting that the window was to be split
|
||||||
|
vertically by doing a '\bv', from then on, all splits, i.e. '\bs',
|
||||||
|
were split vertically, even though g:bufExplorerSplitType was not set
|
||||||
|
to 'v'.
|
||||||
|
6.2.2 - Thanks to Patrik Modesto for adding a small improvement. For some
|
||||||
|
reason his bufexplorer window was always showing up folded. He added
|
||||||
|
'setlocal nofoldenable' and it was fixed.
|
||||||
|
6.2.1 - Thanks goes out to Takashi Matsuo for added the 'fullPath' sorting
|
||||||
|
logic and option.
|
||||||
|
6.2.0 - Thanks goes out to Simon Johann-Ganter for spotting and fixing a
|
||||||
|
problem in that the last search pattern is overridden by the search
|
||||||
|
pattern for blank lines.
|
||||||
|
6.1.6 - Thanks to Artem Chuprina for finding a pesky bug that has been around
|
||||||
|
for sometime now. The <esc> key mapping was causing the buffer
|
||||||
|
explored to close prematurely when vim was run in an xterm. The <esc>
|
||||||
|
key mapping is now removed.
|
||||||
|
6.1.5 - Thanks to Khorev Sergey. Added option to show default help or not.
|
||||||
|
6.1.4 - Thanks goes out to Valery Kondakoff for suggesting the addition of
|
||||||
|
setlocal nonumber and foldcolumn=0. This allows for line numbering
|
||||||
|
and folding to be turned off temporarily while in the explorer.
|
||||||
|
6.1.3 - Added folding. Did some code cleanup. Added the ability to force the
|
||||||
|
newly split window to be temporarily vertical, which was suggested by
|
||||||
|
Thomas Glanzmann.
|
||||||
|
6.1.2 - Now pressing the <esc> key will quit, just like 'q'.
|
||||||
|
Added folds to hide winmanager configuration.
|
||||||
|
If anyone had the 'C' option in their cpoptions they would receive
|
||||||
|
a E10 error on startup of BufExplorer. cpo is now saved, updated and
|
||||||
|
restored. Thanks to Charles E Campbell, Jr.
|
||||||
|
Attempted to make sure there can only be one BufExplorer window open
|
||||||
|
at a time.
|
||||||
|
6.1.1 - Thanks to Brian D. Goodwin for adding toupper to FileNameCmp. This
|
||||||
|
way buffers sorted by name will be in the correct order regardless of
|
||||||
|
case.
|
||||||
|
6.0.16 - Thanks to Andre Pang for the original patch/idea to get bufexplorer
|
||||||
|
to work in insertmode/modeless mode (evim). Added Initialize
|
||||||
|
and Cleanup autocommands to handle commands that need to be
|
||||||
|
performed when starting or leaving bufexplorer.
|
||||||
|
6.0.15 - Srinath Avadhanulax added a patch for winmanager.vim.
|
||||||
|
6.0.14 - Fix a few more bug that I thought I already had fixed. Thanks
|
||||||
|
to Eric Bloodworth for adding 'Open Mode/Edit in Place'. Added
|
||||||
|
vertical splitting.
|
||||||
|
6.0.13 - Thanks to Charles E Campbell, Jr. for pointing out some embarrassing
|
||||||
|
typos that I had in the documentation. I guess I need to run
|
||||||
|
the spell checker more :o)
|
||||||
|
6.0.12 - Thanks to Madoka Machitani, for the tip on adding the augroup command
|
||||||
|
around the MRUList autocommands.
|
||||||
|
6.0.11 - Fixed bug report by Xiangjiang Ma. '"=' was being added to the
|
||||||
|
search history which messed up hlsearch.
|
||||||
|
6.0.10 - Added the necessary hooks so that the Srinath Avadhanula's
|
||||||
|
winmanager.vim script could more easily integrate with this script.
|
||||||
|
Tried to improve performance.
|
||||||
|
6.0.9 - Added MRU (Most Recently Used) sort ordering.
|
||||||
|
6.0.8 - Was not resetting the showcmd command correctly.
|
||||||
|
Added nifty help file.
|
||||||
|
6.0.7 - Thanks to Brett Carlane for some great enhancements. Some are added,
|
||||||
|
some are not, yet. Added highlighting of current and alternate
|
||||||
|
filenames. Added splitting of path/filename toggle. Reworked
|
||||||
|
ShowBuffers().
|
||||||
|
Changed my email address.
|
||||||
|
6.0.6 - Copyright notice added. Needed this so that it could be distributed
|
||||||
|
with Debian Linux. Fixed problem with the SortListing() function
|
||||||
|
failing when there was only one buffer to display.
|
||||||
|
6.0.5 - Fixed problems reported by David Pascoe, in that you where unable to
|
||||||
|
hit 'd' on a buffer that belonged to a files that no longer existed
|
||||||
|
and that the 'yank' buffer was being overridden by the help text when
|
||||||
|
the bufexplorer was opened.
|
||||||
|
6.0.4 - Thanks to Charles Campbell, Jr. for making this plugin more plugin
|
||||||
|
*compliant*, adding default keymappings of <Leader>be and <Leader>bs
|
||||||
|
as well as fixing the 'w:sortDirLabel not being defined' bug.
|
||||||
|
6.0.3 - Added sorting capabilities. Sort taken from explorer.vim.
|
||||||
|
6.0.2 - Can't remember. (2001-07-25)
|
||||||
|
6.0.1 - Initial release.
|
||||||
|
|
||||||
|
===============================================================================
|
||||||
|
TODO *bufexplorer-todo*
|
||||||
|
|
||||||
|
- Nothing as of now, buf if you have any suggestions, drop me an email.
|
||||||
|
|
||||||
|
===============================================================================
|
||||||
|
CREDITS *bufexplorer-credits*
|
||||||
|
|
||||||
|
Author: Jeff Lanzarotta <delux256-vim at yahoo dot com>
|
||||||
|
|
||||||
|
Credit must go out to Bram Moolenaar and all the Vim developers for
|
||||||
|
making the world's best editor (IMHO). I also want to thank everyone who
|
||||||
|
helped and gave me suggestions. I wouldn't want to leave anyone out so I
|
||||||
|
won't list names.
|
||||||
|
|
||||||
|
===============================================================================
|
||||||
|
vim:tw=78:noet:wrap:ts=8:ft=help:norl:
|
1162
vim_plugins_src/bufexplorer/plugin/bufexplorer.vim
Normal file
1162
vim_plugins_src/bufexplorer/plugin/bufexplorer.vim
Normal file
File diff suppressed because it is too large
Load diff
114
vim_plugins_src/crefvim/crefvim/after/syntax/help.vim
Normal file
114
vim_plugins_src/crefvim/crefvim/after/syntax/help.vim
Normal file
|
@ -0,0 +1,114 @@
|
||||||
|
"*****************************************************************************
|
||||||
|
"** Name: help.vim - extend standard syntax highlighting for help **
|
||||||
|
"** **
|
||||||
|
"** Type: syntax file **
|
||||||
|
"** **
|
||||||
|
"** Author: Christian Habermann **
|
||||||
|
"** christian (at) habermann-net (point) de **
|
||||||
|
"** **
|
||||||
|
"** Copyright: (c) 2002-2004 by Christian Habermann **
|
||||||
|
"** **
|
||||||
|
"** License: GNU General Public License 2 (GPL 2) or later **
|
||||||
|
"** **
|
||||||
|
"** This program is free software; you can redistribute it **
|
||||||
|
"** and/or modify it under the terms of the GNU General Public **
|
||||||
|
"** License as published by the Free Software Foundation; either **
|
||||||
|
"** version 2 of the License, or (at your option) any later **
|
||||||
|
"** version. **
|
||||||
|
"** **
|
||||||
|
"** This program is distributed in the hope that it will be **
|
||||||
|
"** useful, but WITHOUT ANY WARRANTY; without even the implied **
|
||||||
|
"** warrenty of MERCHANTABILITY or FITNESS FOR A PARTICULAR **
|
||||||
|
"** PURPOSE. **
|
||||||
|
"** See the GNU General Public License for more details. **
|
||||||
|
"** **
|
||||||
|
"** Version: 1.0.1 **
|
||||||
|
"** tested under Linux and Win32, VIM and GVIM 6.2 **
|
||||||
|
"** **
|
||||||
|
"** History: 0.1.0 12. Dec. 2002 - 21. Feb. 2003 **
|
||||||
|
"** initial version, not released **
|
||||||
|
"** 1.0.0 6. Apr. 2003 **
|
||||||
|
"** no changes, first release **
|
||||||
|
"** 1.0.1 3. Mar. 2004 **
|
||||||
|
"** marker changed from 0xa7 to $ in order to avoid problems **
|
||||||
|
"** with fonts that use codes > 0x7f as multibyte characters **
|
||||||
|
"** (e.g. Chinese, Korean, Japanese... fonts) **
|
||||||
|
"** **
|
||||||
|
"** **
|
||||||
|
"*****************************************************************************
|
||||||
|
"** Description: **
|
||||||
|
"** This syntax file extends the standard syntax highlighting for help **
|
||||||
|
"** files. This is needed in order to view the C-reference manual **
|
||||||
|
"** of the project CRefVim correctly. **
|
||||||
|
"** This syntax file is only active for the help file named **
|
||||||
|
"** "crefvim.txt". For other help files no extention on syntax **
|
||||||
|
"** highlighting is applied. **
|
||||||
|
"** **
|
||||||
|
"** For futher information see crefvimdoc.txt or do :help crefvimdoc **
|
||||||
|
"** **
|
||||||
|
"** Happy viming... **
|
||||||
|
"*****************************************************************************
|
||||||
|
|
||||||
|
|
||||||
|
" extend syntax-highlighting for "crefvim.txt" only (not case-sensitive)
|
||||||
|
|
||||||
|
if tolower(expand("%:t"))=="crefvim.txt"
|
||||||
|
syn match helpCRVSubStatement "statement[0-9Ns]*" contained
|
||||||
|
syn match helpCRVSubCondition "condition[0-9]*" contained
|
||||||
|
syn match helpCRVSubExpression "expression[0-9]*" contained
|
||||||
|
syn match helpCRVSubExpr "expr[0-9N]" contained
|
||||||
|
syn match helpCRVSubType "type-name" contained
|
||||||
|
syn match helpCRVSubIdent "identifier" contained
|
||||||
|
syn match helpCRVSubIdentList "identifier-list" contained
|
||||||
|
syn match helpCRVSubOperand "operand[0-9]*" contained
|
||||||
|
syn match helpCRVSubConstExpr "constant-expression[1-9Ns]*" contained
|
||||||
|
syn match helpCRVSubClassSpec "storage-class-specifier" contained
|
||||||
|
syn match helpCRVSubTypeSpec "type-specifier" contained
|
||||||
|
syn match helpCRVSubEnumList "enumerator-list" contained
|
||||||
|
syn match helpCRVSubDecl "declarator" contained
|
||||||
|
syn match helpCRVSubRetType "return-type" contained
|
||||||
|
syn match helpCRVSubFuncName "function-name" contained
|
||||||
|
syn match helpCRVSubParamList "parameter-list" contained
|
||||||
|
syn match helpCRVSubReplList "replacement-list" contained
|
||||||
|
syn match helpCRVSubNewLine "newline" contained
|
||||||
|
syn match helpCRVSubMessage "message" contained
|
||||||
|
syn match helpCRVSubFilename "filename" contained
|
||||||
|
syn match helpCRVSubDigitSeq "digit-sequence" contained
|
||||||
|
syn match helpCRVSubMacroNames "macro-name[s]*" contained
|
||||||
|
syn match helpCRVSubDirective "directive" contained
|
||||||
|
|
||||||
|
|
||||||
|
syn match helpCRVignore "\$[a-zA-Z0-9\\\*/\._=()\-+%<>&\^|!~\?:,\[\];{}#\'\" ]\+\$" contains=helpCRVstate
|
||||||
|
syn match helpCRVstate "[a-zA-Z0-9\\\*/\._=()\-+%<>&\^|!~\?:,\[\];{}#\'\" ]\+" contained contains=helpCRVSub.*
|
||||||
|
|
||||||
|
|
||||||
|
hi helpCRVitalic term=italic cterm=italic gui=italic
|
||||||
|
|
||||||
|
hi def link helpCRVstate Comment
|
||||||
|
hi def link helpCRVSubStatement helpCRVitalic
|
||||||
|
hi def link helpCRVSubCondition helpCRVitalic
|
||||||
|
hi def link helpCRVSubExpression helpCRVitalic
|
||||||
|
hi def link helpCRVSubExpr helpCRVitalic
|
||||||
|
hi def link helpCRVSubOperand helpCRVitalic
|
||||||
|
hi def link helpCRVSubType helpCRVitalic
|
||||||
|
hi def link helpCRVSubIdent helpCRVitalic
|
||||||
|
hi def link helpCRVSubIdentList helpCRVitalic
|
||||||
|
hi def link helpCRVSubConstExpr helpCRVitalic
|
||||||
|
hi def link helpCRVSubClassSpec helpCRVitalic
|
||||||
|
hi def link helpCRVSubTypeSpec helpCRVitalic
|
||||||
|
hi def link helpCRVSubEnumList helpCRVitalic
|
||||||
|
hi def link helpCRVSubDecl helpCRVitalic
|
||||||
|
hi def link helpCRVSubRetType helpCRVitalic
|
||||||
|
hi def link helpCRVSubFuncName helpCRVitalic
|
||||||
|
hi def link helpCRVSubParamList helpCRVitalic
|
||||||
|
hi def link helpCRVSubReplList helpCRVitalic
|
||||||
|
hi def link helpCRVSubNewLine helpCRVitalic
|
||||||
|
hi def link helpCRVSubMessage helpCRVitalic
|
||||||
|
hi def link helpCRVSubFilename helpCRVitalic
|
||||||
|
hi def link helpCRVSubDigitSeq helpCRVitalic
|
||||||
|
hi def link helpCRVSubMacroNames helpCRVitalic
|
||||||
|
hi def link helpCRVSubDirective helpCRVitalic
|
||||||
|
hi def link helpCRVignore Ignore
|
||||||
|
endif
|
||||||
|
|
||||||
|
" vim: ts=8 sw=2
|
14112
vim_plugins_src/crefvim/crefvim/doc/crefvim.txt
Normal file
14112
vim_plugins_src/crefvim/crefvim/doc/crefvim.txt
Normal file
File diff suppressed because it is too large
Load diff
1742
vim_plugins_src/crefvim/crefvim/doc/crefvimdoc.txt
Normal file
1742
vim_plugins_src/crefvim/crefvim/doc/crefvimdoc.txt
Normal file
File diff suppressed because it is too large
Load diff
356
vim_plugins_src/crefvim/crefvim/plugin/crefvim.vim
Normal file
356
vim_plugins_src/crefvim/crefvim/plugin/crefvim.vim
Normal file
|
@ -0,0 +1,356 @@
|
||||||
|
"*****************************************************************************
|
||||||
|
"** Name: crefvim.vim - a C-Reference for Vim **
|
||||||
|
"** **
|
||||||
|
"** Type: global VIM plugin **
|
||||||
|
"** **
|
||||||
|
"** Author: Christian Habermann **
|
||||||
|
"** christian(at)habermann-net(point)de **
|
||||||
|
"** **
|
||||||
|
"** Copyright: (c) 2002, 2003 by Christian Habermann **
|
||||||
|
"** **
|
||||||
|
"** License: GNU General Public License 2 (GPL 2) or later **
|
||||||
|
"** **
|
||||||
|
"** This program is free software; you can redistribute it **
|
||||||
|
"** and/or modify it under the terms of the GNU General Public **
|
||||||
|
"** License as published by the Free Software Foundation; either **
|
||||||
|
"** version 2 of the License, or (at your option) any later **
|
||||||
|
"** version. **
|
||||||
|
"** **
|
||||||
|
"** This program is distributed in the hope that it will be **
|
||||||
|
"** useful, but WITHOUT ANY WARRANTY; without even the implied **
|
||||||
|
"** warrenty of MERCHANTABILITY or FITNESS FOR A PARTICULAR **
|
||||||
|
"** PURPOSE. **
|
||||||
|
"** See the GNU General Public License for more details. **
|
||||||
|
"** **
|
||||||
|
"** Version: 1.0.0 **
|
||||||
|
"** tested under Linux (vim, gvim 6.1) and Win32 (gvim 6.1) **
|
||||||
|
"** **
|
||||||
|
"** History: 0.1.0 12. Dec. 2002 - 23. Feb. 2003 **
|
||||||
|
"** initial version, not released **
|
||||||
|
"** 1.0.0 6. Apr. 2003 **
|
||||||
|
"** no changes, first release **
|
||||||
|
"** **
|
||||||
|
"** **
|
||||||
|
"*****************************************************************************
|
||||||
|
"** Description: **
|
||||||
|
"** This script's intention is to provide a C-reference manual that can **
|
||||||
|
"** be accessed from within Vim. **
|
||||||
|
"** **
|
||||||
|
"** For futher information see crefvim.txt or do :help crefvim **
|
||||||
|
"** **
|
||||||
|
"** **
|
||||||
|
"** Happy viming... **
|
||||||
|
"*****************************************************************************
|
||||||
|
|
||||||
|
" allow user to avoid loading this plugin and prevent loading twice
|
||||||
|
if exists ("loaded_crefvim")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
let loaded_crefvim = 1
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
"*****************************************************************************
|
||||||
|
"************************** C O N F I G U R A T I O N ************************
|
||||||
|
"*****************************************************************************
|
||||||
|
|
||||||
|
" the mappings:
|
||||||
|
if !hasmapto('<Plug>CRV_CRefVimVisual')
|
||||||
|
vmap <silent> <unique> <Leader>cr <Plug>CRV_CRefVimVisual
|
||||||
|
endif
|
||||||
|
if !hasmapto('<Plug>CRV_CRefVimNormal')
|
||||||
|
nmap <silent> <unique> <Leader>cr <Plug>CRV_CRefVimNormal
|
||||||
|
endif
|
||||||
|
if !hasmapto('<Plug>CRV_CRefVimAsk')
|
||||||
|
map <silent> <unique> <Leader>cw <Plug>CRV_CRefVimAsk
|
||||||
|
endif
|
||||||
|
if !hasmapto('<Plug>CRV_CRefVimInvoke')
|
||||||
|
map <silent> <unique> <Leader>cc <Plug>CRV_CRefVimInvoke
|
||||||
|
endif
|
||||||
|
|
||||||
|
vmap <silent> <unique> <script> <Plug>CRV_CRefVimVisual y:call <SID>CRV_CRefVimWord('<c-r>"')<CR>
|
||||||
|
nmap <silent> <unique> <script> <Plug>CRV_CRefVimNormal :call <SID>CRV_CRefVimWord(expand("<cword>"))<CR>
|
||||||
|
map <silent> <unique> <script> <Plug>CRV_CRefVimAsk :call <SID>CRV_CRefVimAskForWord()<CR>
|
||||||
|
map <silent> <unique> <script> <Plug>CRV_CRefVimInvoke :call <SID>CRV_CRefVimShowContents()<CR>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
"*****************************************************************************
|
||||||
|
"************************* I N I T I A L I S A T I O N ***********************
|
||||||
|
"*****************************************************************************
|
||||||
|
|
||||||
|
|
||||||
|
"*****************************************************************************
|
||||||
|
"****************** I N T E R F A C E T O C O R E **************************
|
||||||
|
"*****************************************************************************
|
||||||
|
|
||||||
|
"*****************************************************************************
|
||||||
|
"** this function separates plugin-core-function from user **
|
||||||
|
"*****************************************************************************
|
||||||
|
function <SID>CRV_CRefVimWord(str)
|
||||||
|
call s:CRefVim(a:str)
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
|
"*****************************************************************************
|
||||||
|
"** this function separates plugin-core-function from user **
|
||||||
|
"*****************************************************************************
|
||||||
|
function <SID>CRV_CRefVimAskForWord()
|
||||||
|
call s:CRefVimAskForWord()
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
|
"*****************************************************************************
|
||||||
|
"** this function separates plugin-core-function from user **
|
||||||
|
"*****************************************************************************
|
||||||
|
function <SID>CRV_CRefVimShowContents()
|
||||||
|
" show contents of C-reference manual
|
||||||
|
call s:LookUp("")
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
"*****************************************************************************
|
||||||
|
"************************ C O R E F U N C T I O N S *************************
|
||||||
|
"*****************************************************************************
|
||||||
|
|
||||||
|
"*****************************************************************************
|
||||||
|
"** ask for a word/phrase and lookup **
|
||||||
|
"*****************************************************************************
|
||||||
|
function s:CRefVimAskForWord()
|
||||||
|
let l:strng = input("What to lookup: ")
|
||||||
|
call s:LookUp(l:strng)
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
"*****************************************************************************
|
||||||
|
"** input: "str" **
|
||||||
|
"** output: empty string: "str" is not an operator **
|
||||||
|
"** else: name of tag to go to **
|
||||||
|
"** **
|
||||||
|
"*****************************************************************************
|
||||||
|
"** remarks: **
|
||||||
|
"** This function tests whether or not "str" is an operator. **
|
||||||
|
"** If so, the tag to go to is returned. **
|
||||||
|
"** **
|
||||||
|
"*****************************************************************************
|
||||||
|
function s:IsItAnOperator(str)
|
||||||
|
|
||||||
|
" get first character
|
||||||
|
let l:firstChr = strpart(a:str, 0, 1)
|
||||||
|
|
||||||
|
" is the first character of the help-string an operator?
|
||||||
|
if stridx("!&+-*/%,.:<=>?^|~(){}[]", l:firstChr) >= 0
|
||||||
|
return "crv-operators"
|
||||||
|
else
|
||||||
|
return ""
|
||||||
|
endif
|
||||||
|
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
"*****************************************************************************
|
||||||
|
"** input: "str" **
|
||||||
|
"** output: empty string: "str" is not an escape-sequence **
|
||||||
|
"** else: name of tag to go to **
|
||||||
|
"** **
|
||||||
|
"*****************************************************************************
|
||||||
|
"** remarks: **
|
||||||
|
"** This function tests whether or not "str" is an escape-sequence. **
|
||||||
|
"** If so, the tag to go to is returned. **
|
||||||
|
"** Note: currently \' does not work (="\\\'") **
|
||||||
|
"** **
|
||||||
|
"*****************************************************************************
|
||||||
|
function s:IsItAnEscSequence(str)
|
||||||
|
|
||||||
|
if (a:str == "\\") || (a:str == "\\\\") || (a:str == "\\0") || (a:str == "\\x") ||
|
||||||
|
\(a:str == "\\a") || (a:str == "\\b") || (a:str == "\\f") || (a:str == "\\n") ||
|
||||||
|
\(a:str == "\\r") || (a:str == "\\t") || (a:str == "\\v") || (a:str == "\\?") ||
|
||||||
|
\(a:str == "\\\'") || (a:str == "\\\"")
|
||||||
|
return "crv-lngEscSeq"
|
||||||
|
else
|
||||||
|
return ""
|
||||||
|
endif
|
||||||
|
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
"*****************************************************************************
|
||||||
|
"** input: "str" **
|
||||||
|
"** output: empty string: "str" is not a comment **
|
||||||
|
"** else: name of tag to go to **
|
||||||
|
"** **
|
||||||
|
"*****************************************************************************
|
||||||
|
"** remarks: **
|
||||||
|
"** This function tests whether or not "str" is a comment. **
|
||||||
|
"** If so, the tag to go to is returned. **
|
||||||
|
"** **
|
||||||
|
"*****************************************************************************
|
||||||
|
function s:IsItAComment(str)
|
||||||
|
|
||||||
|
if (a:str == "//") || (a:str == "/*") || (a:str == "*/")
|
||||||
|
return "crv-lngComment"
|
||||||
|
else
|
||||||
|
return ""
|
||||||
|
endif
|
||||||
|
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
"*****************************************************************************
|
||||||
|
"** input: "str" **
|
||||||
|
"** output: empty string: "str" is not a preprocessor **
|
||||||
|
"** else: name of tag to go to **
|
||||||
|
"** **
|
||||||
|
"*****************************************************************************
|
||||||
|
"** remarks: **
|
||||||
|
"** This function tests whether or not "str" is a preprocessor command **
|
||||||
|
"** or a preprocessor operator. **
|
||||||
|
"** If so, the tag to go to is returned. **
|
||||||
|
"** **
|
||||||
|
"** Nothing is done if the help-string is equal to "if" or "else" **
|
||||||
|
"** because these are statements too. For "if" and "else" it's assumed **
|
||||||
|
"** that the statements are meant. But "#if" and "#else" are treated **
|
||||||
|
"** as preprocessor commands. **
|
||||||
|
"** **
|
||||||
|
"*****************************************************************************
|
||||||
|
function s:IsItAPreprocessor(str)
|
||||||
|
|
||||||
|
" get first character
|
||||||
|
let l:firstChr = strpart(a:str, 0, 1)
|
||||||
|
|
||||||
|
" if first character of the help-string is a #, we have the command/operator
|
||||||
|
" string in an appropriate form, so append this help-string to "crv-"
|
||||||
|
if l:firstChr == "#"
|
||||||
|
return "crv-" . a:str
|
||||||
|
else
|
||||||
|
" no # in front of the help string, so evaluate which command/operator
|
||||||
|
" is meant
|
||||||
|
if (a:str == "defined")
|
||||||
|
return "crv-defined"
|
||||||
|
else
|
||||||
|
if (a:str == "define") ||
|
||||||
|
\(a:str == "undef") ||
|
||||||
|
\(a:str == "ifdef") ||
|
||||||
|
\(a:str == "ifndef") ||
|
||||||
|
\(a:str == "elif") ||
|
||||||
|
\(a:str == "endif") ||
|
||||||
|
\(a:str == "include") ||
|
||||||
|
\(a:str == "line") ||
|
||||||
|
\(a:str == "error") ||
|
||||||
|
\(a:str == "pragma")
|
||||||
|
return "\#" . a:str
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
"*****************************************************************************
|
||||||
|
"** input: "str" to lookup in C-reference manual **
|
||||||
|
"** output: none **
|
||||||
|
"*****************************************************************************
|
||||||
|
"** remarks: **
|
||||||
|
"** Lookup string "str". **
|
||||||
|
"** Generally this function calls :help crv-"str" where "str" is the **
|
||||||
|
"** word for which the user wants some help. **
|
||||||
|
"** **
|
||||||
|
"** But before activating VIM's help-system some tests and/or **
|
||||||
|
"** modifications are done on "str": **
|
||||||
|
"** - if help-string is a comment (//, /* or */), go to section **
|
||||||
|
"** describing comments **
|
||||||
|
"** - if help-string is an escape-sequence, go to section describing **
|
||||||
|
"** escape-sequences **
|
||||||
|
"** - if help-string is an operator, go to section dealing with operators **
|
||||||
|
"** - if help-string is a preprocessor command/operator, go to section **
|
||||||
|
"** that describes that command/operator **
|
||||||
|
"** - else call :help crv-"str" **
|
||||||
|
"** **
|
||||||
|
"** If the help-string is empty, go to contents of C-reference manual. **
|
||||||
|
"** **
|
||||||
|
"*****************************************************************************
|
||||||
|
function s:LookUp(str)
|
||||||
|
|
||||||
|
if a:str != ""
|
||||||
|
|
||||||
|
let l:helpTag = s:IsItAComment(a:str)
|
||||||
|
|
||||||
|
if l:helpTag == ""
|
||||||
|
let l:helpTag = s:IsItAnEscSequence(a:str)
|
||||||
|
|
||||||
|
if l:helpTag == ""
|
||||||
|
let l:helpTag = s:IsItAnOperator(a:str)
|
||||||
|
|
||||||
|
if l:helpTag == ""
|
||||||
|
let l:helpTag = s:IsItAPreprocessor(a:str)
|
||||||
|
|
||||||
|
if l:helpTag == ""
|
||||||
|
let l:helpTag = "crv-" . a:str
|
||||||
|
endif
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
" reset error message
|
||||||
|
let v:errmsg = ""
|
||||||
|
|
||||||
|
" activate help-system looking for the appropriate topic
|
||||||
|
" suppress error messages
|
||||||
|
silent! execute ":help " . l:helpTag
|
||||||
|
|
||||||
|
" if there was an error, print message
|
||||||
|
if v:errmsg != ""
|
||||||
|
echo " No help found for \"" .a:str . "\""
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
" help string is empty, so show contents of manual
|
||||||
|
execute ":help crefvim"
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
"*****************************************************************************
|
||||||
|
"** input: "str" to lookup in C-reference manual **
|
||||||
|
"** output: none **
|
||||||
|
"*****************************************************************************
|
||||||
|
"** remarks: **
|
||||||
|
"** lookup string "str". **
|
||||||
|
"** If there is no string, ask for word/phrase. **
|
||||||
|
"** **
|
||||||
|
"*****************************************************************************
|
||||||
|
function s:CRefVim(str)
|
||||||
|
|
||||||
|
let s:strng = a:str
|
||||||
|
|
||||||
|
if s:strng == "" " is there a string to search for?
|
||||||
|
call s:CRefVimAskForWord()
|
||||||
|
else
|
||||||
|
call s:LookUp(s:strng)
|
||||||
|
endif
|
||||||
|
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
"*** EOF ***
|
34
vim_plugins_src/cscope-15.7a/AUTHORS
Normal file
34
vim_plugins_src/cscope-15.7a/AUTHORS
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
Joe Steffen - Creator of Cscope
|
||||||
|
Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de> - Maintainer
|
||||||
|
Petr Sorfa <petr@users.sourceforge.net> - Initial OpenSource Maintainer
|
||||||
|
Simon Cozens - autoconf setup
|
||||||
|
garp@digi.com - .cc .hh support
|
||||||
|
jens persson <cscope@persson.cx> - new man page
|
||||||
|
Edgar Toernig - cscope stability
|
||||||
|
Martin Kraemer - various improvments
|
||||||
|
Joshua Uziel <uzi@linuxcare.com> - code clean up, -h and -k options, and lots more (including autoconf)
|
||||||
|
Mike Hopkirk <hops@sco.com> - osr5 build, ocs
|
||||||
|
Darrylo Okahata <darrylo@users.sourceforge.net> - code quality improvements
|
||||||
|
Brent Verner <brent@rcfile.org> - -R option to recurse sub directories
|
||||||
|
Thomas Klausner - NetBSD support
|
||||||
|
Andrew Sharpe - progress bar, tab between line selection and prompts and more
|
||||||
|
Carl Mascott - FreeBSD support
|
||||||
|
Rich Salz - Allow -i accept stdio as input as "-"
|
||||||
|
Stephane Fritsch - BeOS support
|
||||||
|
Andy Newman <atrn> - FreeBSD support patch
|
||||||
|
Sascha Blank - FreeBSD support
|
||||||
|
Bruce Frost - Stability
|
||||||
|
Chuck Marco and Wilfredo Sanchez - Darwin support
|
||||||
|
Jason Duell - CSCOPE_EDITOR and CSCOPE_LINEFLAG*, invname database
|
||||||
|
Tom Hull - Similar work to CSCOPE_EDITOR and friends
|
||||||
|
Donald Slutz - Various fixes
|
||||||
|
OGAWA Hirofumi - line mode fixes
|
||||||
|
Garret Hade - Various ocs fixes
|
||||||
|
Nick Dixon - Improvement in key handling
|
||||||
|
Triet H. Lai <thlai@mail.usyd.edu.au> - GNU Emacs fixes for xcscope.el
|
||||||
|
Steven Elliott <selliott4@austin.rr.com> - Fuzzy pattern matching for xcscope.el
|
||||||
|
Ragho Mahalingam <ragho@mahalingam.com> - webcscope
|
||||||
|
Dmitry Obukhov - Hilight code in webcscope
|
||||||
|
David Cohrs - LEX and SUNOS scanner fix
|
||||||
|
Valentin Podlovchenko - Overflow prevention and link recursion fix patch
|
||||||
|
Neil Horman <nhorman@gmail.com> - Various Bug Fixes
|
29
vim_plugins_src/cscope-15.7a/COPYING
Normal file
29
vim_plugins_src/cscope-15.7a/COPYING
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
Copyright (c) 1998-2000, The Santa Cruz Operation
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are met:
|
||||||
|
|
||||||
|
*Redistributions of source code must retain the above copyright notice,
|
||||||
|
this list of conditions and the following disclaimer.
|
||||||
|
|
||||||
|
*Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
this list of conditions and the following disclaimer in the documentation
|
||||||
|
and/or other materials provided with the distribution.
|
||||||
|
|
||||||
|
*Neither name of The Santa Cruz Operation nor the names of its contributors
|
||||||
|
may be used to endorse or promote products derived from this software
|
||||||
|
without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
|
||||||
|
IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
||||||
|
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||||
|
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
|
||||||
|
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
INTERRUPTION)
|
||||||
|
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
|
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||||
|
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
|
||||||
|
DAMAGE.
|
636
vim_plugins_src/cscope-15.7a/ChangeLog
Normal file
636
vim_plugins_src/cscope-15.7a/ChangeLog
Normal file
|
@ -0,0 +1,636 @@
|
||||||
|
2009-04-10 Hans-Bernhard Broeker <broeker@physik.rwth-achen.de>
|
||||||
|
|
||||||
|
* src/snprintf.c: Replacement implementation for missing snprintf
|
||||||
|
and vsprintf, from www.jhweiss.de.
|
||||||
|
|
||||||
|
* acinclude: New macros to optionally activate a replacement for
|
||||||
|
missing snprintf and vsprintf, from www.jhweiss.de.
|
||||||
|
|
||||||
|
* configure.in: Call new macros for snprintf and vsprintf. Drop
|
||||||
|
AC_FUNC_LSTAT in turn, since it would have required a replacement
|
||||||
|
implementation for lstat().
|
||||||
|
|
||||||
|
* src/Makefile.am (cscope_LDADD): Added LIBOBJS to automatically
|
||||||
|
include snprintf.o in the build if and only if needed.
|
||||||
|
|
||||||
|
* configure, config.h.in, aclocal.m4, Makefile.in,
|
||||||
|
contrib/Makefile.in, doc/Makefile.in, src/Makefile.in:
|
||||||
|
Regenerated.
|
||||||
|
|
||||||
|
* src/global.h: Add prototypes for replacement snprintf and
|
||||||
|
vsnprintf.
|
||||||
|
|
||||||
|
* src/*.c: Replace all calls of sprintf by snprintf to avoid
|
||||||
|
possible buffer overflows.
|
||||||
|
|
||||||
|
2008-06-30 Hans-Bernhard Broeker <broeker@physik.rwth-achen.de>
|
||||||
|
|
||||||
|
* aclocal.m4, configure, config.h.in, Makefile.in,
|
||||||
|
src/Makefile.in, doc/Makefile.in, contrib/Makefile.in: Regenerated
|
||||||
|
by recent autotools.
|
||||||
|
|
||||||
|
* compile, config.guess, config.sub, depcomp, install-sh, missing,
|
||||||
|
mkinstalldirs, ylwrap: Updated to version provided by recent
|
||||||
|
autotools.
|
||||||
|
|
||||||
|
* INSTALL.gnu: GNU installation instructions.
|
||||||
|
|
||||||
|
* src/global.h (tempstring): Fix mismatch of declaration with
|
||||||
|
definition.
|
||||||
|
|
||||||
|
2008-04-11 Neil Horman <nhorman@tuxdriver.com>
|
||||||
|
* src/main.c, src/exec.c : configure ncurses to operate in raw
|
||||||
|
mode so that ctrl-c (toggle case sensitivity) isn't swallowed by
|
||||||
|
the terminal driver
|
||||||
|
|
||||||
|
2008-03-12 Hans-Bernhard Broeker <broeker@physik.rwth-achen.de>
|
||||||
|
|
||||||
|
* src/build.c (samelist): Previous fix broke handling of blanks in
|
||||||
|
directory names.
|
||||||
|
(build): Apply the same fix to other occurence of the same code.
|
||||||
|
|
||||||
|
2008-03-10 Neil Horman <nhorman@tuxdriver.com>
|
||||||
|
|
||||||
|
* src/build.c: Fix Samelist to properly absorb newlines so that
|
||||||
|
inverted indicies aren't always rebuilt
|
||||||
|
|
||||||
|
2008-02-14 Neil Horman <nhorman@tuxdriver.com>
|
||||||
|
|
||||||
|
* src/dir.c: Fix up issrcfile to identify hpp/hxx files as
|
||||||
|
standard c++ source files
|
||||||
|
|
||||||
|
* src/main.c: Add myexit as a handler for SIGTERM, to clean up
|
||||||
|
temp files on TERM
|
||||||
|
|
||||||
|
2007-12-03 Hans-Bernhard Broeker <broeker@physik.rwth-achen.de>
|
||||||
|
|
||||||
|
* doc/cscope.1: Grammar corrections [SF patch #1843711] and troff
|
||||||
|
syntax fixes [from ESR].
|
||||||
|
|
||||||
|
2007-03-10 Hans-Bernhard Broeker <broeker@physik.rwth-achen.de>
|
||||||
|
|
||||||
|
* src/scanner.l (comment_input): Translate EOF to LEXEOF in this
|
||||||
|
case, too.
|
||||||
|
(input, noncommentinput): Spell out LEXEOF instead of a magic
|
||||||
|
number 0.
|
||||||
|
|
||||||
|
2007-02-09 Neil Horman <nhorman@tuxdriver.com>
|
||||||
|
|
||||||
|
* doc/xcscope.1: Added man page for xcscope utility in contrib
|
||||||
|
|
||||||
|
2007-01-07 Hans-Bernhard Broeker <broeker@physik.rwth-achen.de>
|
||||||
|
|
||||||
|
* src/fscanner.l: Avoid a -Wunused warning by disabling the
|
||||||
|
yy_topstate() function.
|
||||||
|
|
||||||
|
* README: Add a warning about the intended user audience not
|
||||||
|
including superusers or anonymous ones.
|
||||||
|
|
||||||
|
* contrib/webcscope/cscope: Find perl in /usr/bin, which should be
|
||||||
|
more likely as its installation position these days. Put a big
|
||||||
|
red reminder to the top of the generated HTML page warning about
|
||||||
|
the security issues involved with webcscope. Thanks to V-Li and
|
||||||
|
the Gentoo folks for the patch.
|
||||||
|
|
||||||
|
2006-10-23 Neil Horman <nhorman@tuxdriver.com>
|
||||||
|
|
||||||
|
* src/main.c: Update sigwinch_handler to only register if linemode
|
||||||
|
is not specified (SF bug 1574354)
|
||||||
|
|
||||||
|
2006-10-15 Hans-Bernhard Broeker <broeker@physik.rwth-achen.de>
|
||||||
|
|
||||||
|
* src/dir.c (accessible_file): New function to test for file
|
||||||
|
readability more strictly than just access().
|
||||||
|
(inviewpath): Use it to avoid unreadable files (directories, in
|
||||||
|
particular) getting into the srcfilelist, and thus hopefully fix
|
||||||
|
SF bug #1173768.
|
||||||
|
|
||||||
|
2006-10-10 Neil Horman <nhorman@tuxdriver.com>
|
||||||
|
|
||||||
|
* src/main.c: Updated sigwinch_handler to not run in the event
|
||||||
|
that curses is not running to avoid crash (SF bug 1574354)
|
||||||
|
|
||||||
|
2006-09-30 Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de>
|
||||||
|
|
||||||
|
* src/fscanner.l (wsnl): Expand set of allowed characters to make
|
||||||
|
scanner more tolerant of non-Unix linebreaks (should fix SF Bug
|
||||||
|
#1563459)
|
||||||
|
|
||||||
|
* src/Makefile.am (CLEANFILES, dist-hook): Commented out, to
|
||||||
|
reduce number of user reports from people without lex.
|
||||||
|
|
||||||
|
* configure.in: Change from AC_PROG_LEX to AM_PROG_LEX.
|
||||||
|
|
||||||
|
* src/Makefile.am (cscope_SOURCES): Added alloc.h. Reindented.
|
||||||
|
|
||||||
|
* src/invlib.c (invnewterm): Correct loop test to account for
|
||||||
|
maxback being unsigned (should fix SF bug #1559495).
|
||||||
|
|
||||||
|
* src/Makefile.am (AM_CPPFLAGS): Renamed from INCLUDES, to quench
|
||||||
|
an automake warning.
|
||||||
|
|
||||||
|
* configure.in: Modernized via autoupdate. Fixed several
|
||||||
|
'underquoted' warnings from aclocal. Use a more telling source
|
||||||
|
file name in AC_CONFIG_SRCDIR.
|
||||||
|
|
||||||
|
* configure, aclocal.m4, Makefile.in, contrib/Makefile.in,
|
||||||
|
doc/Makefile.in, src/Makefile.in: Regenerated.
|
||||||
|
|
||||||
|
2006-08-20 Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de>
|
||||||
|
|
||||||
|
* src/find.c (findsymbol): Missed one place where s_len had to be
|
||||||
|
initialized.
|
||||||
|
|
||||||
|
* src/main.c (tempstring): Parametrize length by new macro
|
||||||
|
TEMPSTRING_LEN.
|
||||||
|
(main): Check against too long -f file name.
|
||||||
|
(main): Put explicit %s field widths into fscanf() call.
|
||||||
|
(main): Replace some fscanf() calls by fgets().
|
||||||
|
|
||||||
|
* src/input.c (shellpath): Limit size of strings copied from
|
||||||
|
environment.
|
||||||
|
|
||||||
|
* src/edit.c (editref, editall): Put explicit %s field widths into
|
||||||
|
fscanf() calls.
|
||||||
|
|
||||||
|
* src/display.c (display): Put explicit %s field widths into
|
||||||
|
fscanf() call.
|
||||||
|
|
||||||
|
* src/dir.c (makefilelist): Put explicit %s field width into
|
||||||
|
sscanf() call.
|
||||||
|
|
||||||
|
* src/constants.h (TEMPSTRING_LEN): New macro, needed to
|
||||||
|
parametrize a fscanf() call.
|
||||||
|
(STRINGIZE): New macro used to build the following.
|
||||||
|
(PATLEN_STR, PATHLEN_STR, NUMLEN_STR, TEMPSTRING_LEN_STR): Buffer
|
||||||
|
lengths (minus 1) expressed as a string literal, to be used in as
|
||||||
|
field widths in {f,s}scanf() calls.
|
||||||
|
|
||||||
|
* src/command.c (changestring): Put explicit %s field widths into
|
||||||
|
fscanf() call.
|
||||||
|
|
||||||
|
* src/build.c (samelist, build): fgets() replaces fscanf().
|
||||||
|
(build): Put explicit %s field widths into fscanf() call.
|
||||||
|
|
||||||
|
2006-07-23 Hans-Bernhard Broeker <broeker@physik.rwth-achen.de>
|
||||||
|
|
||||||
|
* src/global.h: Rename putstring() to fetch_string_from_dbase(),
|
||||||
|
add a parameter.
|
||||||
|
|
||||||
|
* src/find.c: Add #include <assert.h>
|
||||||
|
(fetch_string_from_dbase): Renamed from misleading name
|
||||||
|
putstring(). Add new parameter, and use it to avoid overflowing
|
||||||
|
the output buffer.
|
||||||
|
(findsymbol): New local: s_len. Rename calls to putstring(). Add
|
||||||
|
new argument, some of them from s_len.
|
||||||
|
(finddef, findallfcns, findcalling, findinclude, match,
|
||||||
|
findcalledby, putpostingref): Rename calls to putstring(). Add new
|
||||||
|
argument.
|
||||||
|
|
||||||
|
* src/constants.h (MSGLEN): Add safety parentheses.
|
||||||
|
|
||||||
|
* src/library.h: Remove prototypes of alloc.c functions.
|
||||||
|
|
||||||
|
* src/alloc.h: New file. Moved prototypes of alloc.c functions in
|
||||||
|
here, out of library.h.
|
||||||
|
|
||||||
|
* src/alloc.c: Include new header file from here.
|
||||||
|
(my_strdup): Changed name from misleading stralloc(). Remove
|
||||||
|
incorrect cast.
|
||||||
|
|
||||||
|
* src/build.c: Add #include "alloc.h".
|
||||||
|
(fetch_include_from_dbase): Renamed from misleading name
|
||||||
|
putinclude(). Add length of target string as an argument.
|
||||||
|
(setup_build_filenames): Rename calls of stralloc().
|
||||||
|
(getoldfile, copyinverted): Rename calls of putstring(). Add new
|
||||||
|
argument.
|
||||||
|
(copydata, coypinverted): Rename calls of putinclude(). Add new
|
||||||
|
argument.
|
||||||
|
|
||||||
|
* src/vpinit.c: Add #include "alloc.h"
|
||||||
|
(vpinit): Rename calls of stralloc().
|
||||||
|
|
||||||
|
* src/main.c: Add #include "alloc.h".
|
||||||
|
(main): Rename calls of stralloc().
|
||||||
|
|
||||||
|
* src/history.c: Add #include "alloc.h".
|
||||||
|
(addcmd): Rename call of stralloc().
|
||||||
|
|
||||||
|
* src/fscanner.l: Add #include "alloc.h".
|
||||||
|
|
||||||
|
* src/display.c: Add #include "alloc.h".
|
||||||
|
|
||||||
|
* src/dir.c: Add #include "alloc.h". Move project includes above
|
||||||
|
system headers.
|
||||||
|
(sourcedir, addsrcdir, includedir, addincdir, addsrcfile): Rename
|
||||||
|
calls to stralloc().
|
||||||
|
|
||||||
|
* src/crossref.c: Add #include "alloc.h"
|
||||||
|
|
||||||
|
* src/command.c: Add #include "alloc.h".
|
||||||
|
|
||||||
|
2006-05-06 Hans-Bernhard Broeker <broeker@physik.rwth-achen.de>
|
||||||
|
|
||||||
|
* src/fscanner.l: Accept numeric literals inside fcn definitions
|
||||||
|
and calls.
|
||||||
|
|
||||||
|
2006-04-21 Hans-Bernhard Broeker <broeker@physik.rwth-achen.de>
|
||||||
|
|
||||||
|
Make source clean under -Wsign-compare.
|
||||||
|
|
||||||
|
* src/main.c (fileargc): Make counter unsigned.
|
||||||
|
(main): Make local counter unsigned.
|
||||||
|
(main): Fixed two sprintf() excess arguments.
|
||||||
|
|
||||||
|
* src/lookup.c (initsymtab): Make local counters unsigned.
|
||||||
|
|
||||||
|
* src/invlib.c (LINEMAX): Removed.
|
||||||
|
(invmake): Change length of local variable "line" to TERMMAX.
|
||||||
|
(numpost, numlogblk, amtused, nextpost, lastinblk, numinvitems):
|
||||||
|
Make counters unsigned.
|
||||||
|
(invnewterm): Make local counters unsigned.
|
||||||
|
|
||||||
|
* src/input.c (mygetline): Make local counters unsigned.
|
||||||
|
|
||||||
|
* src/find.c (findregexp, findfile): Make local counters unsigned.
|
||||||
|
|
||||||
|
* src/egrep.y (line, left, right, parent): Make unsigned.
|
||||||
|
(enter, cclenter): Return unsigned.
|
||||||
|
(follow): Make argument unsigned.
|
||||||
|
(cclenter, cfoll, cgotofn, member, add, follow): Make local
|
||||||
|
counters unsigned.
|
||||||
|
(cgotofn, member): Cast char to unsigned char, not unsigned int,
|
||||||
|
for use as an index.
|
||||||
|
|
||||||
|
* src/display.c (disprefs, mdisprefs, nextline, topline,
|
||||||
|
totallines): Make unsigned.
|
||||||
|
(search): Removed unused locals.
|
||||||
|
(seekline): Make argument unsigned.
|
||||||
|
|
||||||
|
* src/dir.c (nincdirs, nsrcdirs, nsrcfiles, msrcfiles, mincdirs,
|
||||||
|
msrcdirs, nvpsrcdirs): Make unsigned long.
|
||||||
|
(sourcedir, includedir, makefilelist, incfile, inviewpath): Make
|
||||||
|
local counters unsigned.
|
||||||
|
|
||||||
|
* src/crossref.c (symbols, msymbols): Make unsigned long.
|
||||||
|
(struct symbol): Make elements first, last, length and fcn_level
|
||||||
|
unsigned.
|
||||||
|
(crossref, putcrossref): Make local counters unsigned.
|
||||||
|
|
||||||
|
* src/command.c (curdispline): Make unsigned.
|
||||||
|
(mark): Make argument and local counter unsigned.
|
||||||
|
(command): Make KEY_LL conditional on KEY_LL, not KEY_HOME.
|
||||||
|
(changestring): Made local counter unsigned.
|
||||||
|
|
||||||
|
* src/build.c (build): Change several local ints to unsigned
|
||||||
|
longs.
|
||||||
|
|
||||||
|
* src/global.h: Updated lots of declarations to match the above.
|
||||||
|
|
||||||
|
* src/alloc.c (mymalloc, mycalloc, myrealloc): Make size arguments
|
||||||
|
size_t. Remove pointless casts in several of their callers.
|
||||||
|
|
||||||
|
* src/library.h (mymalloc, mycalloc, myrealloc): Updated
|
||||||
|
prototoypes.
|
||||||
|
|
||||||
|
2006-04-20 Hans-Bernhard Broeker <broeker@physik.rwth-achen.de>
|
||||||
|
|
||||||
|
* src/input.c (askforreturn): If curses is handling the display,
|
||||||
|
redraw the screen before returning, to keep error messages from
|
||||||
|
permanently scrambling the display.
|
||||||
|
|
||||||
|
* configure.in: Add test for <io.h>.
|
||||||
|
|
||||||
|
* configure, config.h.in: Regenerated.
|
||||||
|
|
||||||
|
* src/mypopen.c [HAVE_IO_H]: #include <io.h> it, for the setmode()
|
||||||
|
declaration.
|
||||||
|
|
||||||
|
2006-04-19 Hans-Bernhard Broeker <broeker@physik.rwth-achen.de>
|
||||||
|
|
||||||
|
General change: indentation width of touched areas changed to 4
|
||||||
|
spaces, open braces not on lines of their own, single-line "else
|
||||||
|
if", get rid of (void) casts of unused function return values.
|
||||||
|
|
||||||
|
* src/global.h (select_large): Removed declaration.
|
||||||
|
|
||||||
|
* src/main.c (select_large, main): Removed long unused global.
|
||||||
|
|
||||||
|
* src/dir.c (scan_dir): Get rid of d_ino check --- this field is
|
||||||
|
not reliably present in struct dirent, and doesn't achieve enough
|
||||||
|
to be worth autoconf-ing around. Works around problems compiling on
|
||||||
|
Cygwin release 1.5.19.
|
||||||
|
|
||||||
|
* Makefile.in, aclocal.m4, configure, contrib/Makefile.in,
|
||||||
|
doc/Makefile.in, src/Makefile.in: Regenerated with current auto
|
||||||
|
tools (autoconf-2.59, automake 1.9.6).
|
||||||
|
|
||||||
|
2006-02-21 Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de>
|
||||||
|
|
||||||
|
* src/vpinit.c (vpinit): Fix handling of slightly malformed VPATH
|
||||||
|
environment variable contents.
|
||||||
|
|
||||||
|
2005-11-22 Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de>
|
||||||
|
|
||||||
|
* src/dir.c (issrcfile): Finally added auto-searching for
|
||||||
|
three-letter C++ file extensions *.tcc, *.cpp, *.cxx. Test all
|
||||||
|
matches to be regular files, not just those with two- and
|
||||||
|
three-character extensions.
|
||||||
|
|
||||||
|
* src/invlib.c: Some cleanup. Replace 0 third argument to fseek
|
||||||
|
by proper SEEK_SET. Got rid of (void) result casts and some
|
||||||
|
function argument casts.
|
||||||
|
(invmake): Fix one sizeof(long)==4 assumption.
|
||||||
|
|
||||||
|
2005-08-16 Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de>
|
||||||
|
|
||||||
|
* src/main.c: Uncluttered by removing nitpicky (void) casts.
|
||||||
|
(longusage): Reworked for source legibility even on 80-column
|
||||||
|
displays.
|
||||||
|
(main): If in verbose linemode, print number of references found,
|
||||||
|
first off. Patch from Elad Lahav, for Kscope
|
||||||
|
|
||||||
|
2005-07-08 Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de>
|
||||||
|
|
||||||
|
* src/build.c (invname_buf, invpost_buf, reffile_buf): Make
|
||||||
|
modifiable copies of the default file names.
|
||||||
|
(invname, invpost, reffile): Initialize pointers to modifiable
|
||||||
|
copies, rather than to string literals.
|
||||||
|
|
||||||
|
* packages/MSDOS/djmake.bat: Adapt to modern position of ylwrap
|
||||||
|
script.
|
||||||
|
|
||||||
|
* src/command.c (command) [KEY_RESIZE]: Protect by
|
||||||
|
!defined(__DJGPP__). That platform doesn't have sigaction() and
|
||||||
|
associated machinery, nor does it really support terminal size
|
||||||
|
changes to begin with.
|
||||||
|
|
||||||
|
* src/main.c (sigwinch_handler): Likewise.
|
||||||
|
(main): Likewise.
|
||||||
|
|
||||||
|
2005-04-29 Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de>
|
||||||
|
|
||||||
|
* src/command.c (command): Additional hotkey mapping of Ctrl-A to
|
||||||
|
same function as Ctrl-Y, like AT&T cscope, to evade Ctrl-Y
|
||||||
|
occupied as the DSUSP signal key on BSD'ish platforms.
|
||||||
|
|
||||||
|
* src/help.c (help): Document additonal hotkey ^A. Mention
|
||||||
|
possible unavailability of some Ctrl keys because of terminal
|
||||||
|
settings.
|
||||||
|
|
||||||
|
2005-03-14 Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de>
|
||||||
|
|
||||||
|
* src/input.c (getline): Removed. Was just a minimally simplified
|
||||||
|
copy of mygetline() anyway, and it threatened to collide with a
|
||||||
|
like-named routine in libc.
|
||||||
|
|
||||||
|
* src/global.h (getline): Removed prototype.
|
||||||
|
|
||||||
|
* src/command.c (command): Changed all calls of getline() to
|
||||||
|
mygetline() with an empty string as the first argument.
|
||||||
|
|
||||||
|
* src/egrep.y (memset): Changed #if condition around fallback
|
||||||
|
implementation to match that of the prototype in global.h. Should
|
||||||
|
fix SF bug #1163104 (build failure on FreeBSD).
|
||||||
|
|
||||||
|
2005-02-16 Neil Horman <nhorman@gmail.com>
|
||||||
|
|
||||||
|
* src/command.c (command): Added ifdef KEY_RESIZE around
|
||||||
|
KEY_RESIZE case in switch statement to allow curses
|
||||||
|
libraries which don't support resize events to build
|
||||||
|
|
||||||
|
* src/main.c (main): Added ifdef KEY_RESIZE around
|
||||||
|
SIGWINCH handler and signal registration logic to
|
||||||
|
remove resize code from cscope when building with
|
||||||
|
curses libraries that don't support resize events
|
||||||
|
|
||||||
|
2005-02-04 Neil Horman <nhorman@gmail.com>
|
||||||
|
|
||||||
|
* src/command.c (command): Added KEY_RESIZE event case to
|
||||||
|
command switch to handle window re-drawing when a resize
|
||||||
|
event was received.
|
||||||
|
|
||||||
|
* src/input.c (mygetch): Added error checking of return code
|
||||||
|
to restart call to getch in the event it returned early due
|
||||||
|
to a signal being delivered.
|
||||||
|
|
||||||
|
* src/main.c (main): Registered a signal handler for the
|
||||||
|
SIGWINCH handler which is delivered when a terminal is
|
||||||
|
resized. Handler pushes a KEY_RESIZE event onto the head
|
||||||
|
of the command input queue.
|
||||||
|
|
||||||
|
2005-02-01 Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de>
|
||||||
|
|
||||||
|
* src/build.c (build): Keep interactive mode on, even if on a
|
||||||
|
terminal, if verbose mode (-v) was turned on.
|
||||||
|
|
||||||
|
2005-01-31 Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de>
|
||||||
|
|
||||||
|
* src/scanner.h: Declare yytext signed on AIX (without stating a
|
||||||
|
version number, for now).
|
||||||
|
|
||||||
|
2005-01-30 Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de>
|
||||||
|
|
||||||
|
* src/mypopen.c (mypopen): Make closing argument to execlp() a
|
||||||
|
manifest null pointer, not just a zero.
|
||||||
|
|
||||||
|
2004-12-08 Neil Horman <nhorman@gmail.com>
|
||||||
|
|
||||||
|
* src/dir.c: Fix to dissallow unreadable files from
|
||||||
|
srcfiles list (sourceforge bug number 1040690)
|
||||||
|
|
||||||
|
2004-12-06 Neil Horman <nhorman@gmail.com>
|
||||||
|
|
||||||
|
* src/main.c: Fix for temp file security bug (sourceforge
|
||||||
|
bug number 1062807 / CAN-2004-0970)
|
||||||
|
|
||||||
|
2004-11-22 Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de>
|
||||||
|
|
||||||
|
* doc/cscope.1: Make ESR happy: change man page summary section to
|
||||||
|
avoid [0-9] syntax.
|
||||||
|
|
||||||
|
2004-10-27 Hans-Bernhard Broeker <broeker@accip02.physik.rwth-aachen.de>
|
||||||
|
|
||||||
|
* src/display.c (search): Replace duplicated code by a call to
|
||||||
|
countrefs(). Duplicate lacked adjustment of column widths in case
|
||||||
|
of very long function/file names. Thanks to Darlene Wong for
|
||||||
|
spotting this.
|
||||||
|
|
||||||
|
* src/global.h (countrefs): Prototype added.
|
||||||
|
|
||||||
|
* src/command.c (countrefs): Made globally available.
|
||||||
|
|
||||||
|
2004-06-23 Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de>
|
||||||
|
|
||||||
|
* src/dir.c (makefilelist): Fix broken movement of point_in_line
|
||||||
|
when parsing quoted names. Simplify structure by moving default
|
||||||
|
handling upward.
|
||||||
|
|
||||||
|
2004-06-21 Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de>
|
||||||
|
|
||||||
|
* contrib/ocs (SYSDIR): Only set to /usr/local/lib/cs if not
|
||||||
|
already set in outside environment. Check that $(SYSDIR) exists
|
||||||
|
before proceeding. From SF patch #976788 by Neil Horman.
|
||||||
|
|
||||||
|
2004-04-30 Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de>
|
||||||
|
|
||||||
|
* src/vpinit.c (vpinit): Renamed argument currentdir to
|
||||||
|
current_dir to avoid name clash with same-named global.
|
||||||
|
|
||||||
|
* src/command.c (Pattern): Renamed from "pattern", to avoid
|
||||||
|
multitute of compiler warnings about shadowing by locally defined
|
||||||
|
variables of the same name. Changed all usages of this variable,
|
||||||
|
too.
|
||||||
|
(command): Test for individual KEY_* macros instead of TERMINFO
|
||||||
|
whenever one of the KEY_* macros is referenced. This should
|
||||||
|
reduce the TERMINFO mess a little.
|
||||||
|
|
||||||
|
* src/find.c (read_block): Renamed from "readblock", to avoid name
|
||||||
|
clash with QNX system function of that name. Calls changed
|
||||||
|
accordingly, all over the place.
|
||||||
|
|
||||||
|
* src/display.c: Fix fall-back definition of sigjmp_buf.
|
||||||
|
|
||||||
|
* src/constants.h: Activate TERMINFO for FreeBSD.
|
||||||
|
|
||||||
|
* src/input.c (mygetline): New function. Poor-man's readline
|
||||||
|
imitation. From SF Patch #937310.
|
||||||
|
|
||||||
|
* src/global.h (mygetline): Prototype added.
|
||||||
|
|
||||||
|
* src/command.c (command): Use mygetline() instead of letting
|
||||||
|
ncsurses doing it all. Make Ctrl-B/F special hotkeys that are
|
||||||
|
handled here instead of in mygetline(), to preserve their meaning.
|
||||||
|
|
||||||
|
* packages/cscope.spec: Updated by SF patch #920586 to be more
|
||||||
|
compatible with current expectations.
|
||||||
|
|
||||||
|
2004-02-24 Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de>
|
||||||
|
|
||||||
|
* configure.in (AC_CHECK_HEADERS): Added check for NSK-Tandem
|
||||||
|
special magic header file <floss.h>.
|
||||||
|
|
||||||
|
* src/global.h [HAVE_FLOSS_H]: Added #include <floss.h> if it
|
||||||
|
exists.
|
||||||
|
|
||||||
|
2004-02-14 Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de>
|
||||||
|
|
||||||
|
* src/command.c (countrefs): Fix off-by-one length specification
|
||||||
|
of %s format. Thanks to <anil@recoil.org> for spotting it.
|
||||||
|
|
||||||
|
2004-02-12 Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de>
|
||||||
|
|
||||||
|
Fix SF bug #892731: Ctrl-C interruption of search works only once
|
||||||
|
per session.
|
||||||
|
|
||||||
|
* configure.in (sigsetjmp): Added test for presence of this
|
||||||
|
function.
|
||||||
|
|
||||||
|
* src/display.c (sigsetjmp) [!HAVE_SIGSETJMP]: Provide fallback
|
||||||
|
definitions for functions sigsetjmp, siglongjmp and type
|
||||||
|
sigjmp_buf.
|
||||||
|
(search): Move call to signal() above that to setjmp(). Call
|
||||||
|
sigsetjmp() instead of setjmp().
|
||||||
|
|
||||||
|
* configure, config.h.in: Regenerated.
|
||||||
|
|
||||||
|
* Makefile.in, src/Makefile.in, contrib/Makefile.in,
|
||||||
|
doc/Makefile.in, aclocal.m4: Rebuilt by automake-1.7.9.
|
||||||
|
|
||||||
|
|
||||||
|
2004-02-11 Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de>
|
||||||
|
|
||||||
|
* configure.in (signal.h) Check added.
|
||||||
|
(sighandler_t): Check for this type. Should be defined on POSIX
|
||||||
|
platforms, but is treated as a GNU extension sometimes.
|
||||||
|
|
||||||
|
* src/global.h (sighandler_t) [!HAVE_SIGHANDLER_T]: Provide
|
||||||
|
fallback definition of function pointer typedef for signal
|
||||||
|
handlers if <signal.h> doesn't provide it. Simplifies cscope's
|
||||||
|
work when working on its own source code --- function pointers
|
||||||
|
confuse it quite badly, so it's best to minimize their visibility.
|
||||||
|
|
||||||
|
* src/input.c (mygetch): Type of local variable savesig written
|
||||||
|
using sighandler_t.
|
||||||
|
|
||||||
|
* src/display.c (search): Type of local variable savesig written
|
||||||
|
using sighandler_t.
|
||||||
|
|
||||||
|
* src/exec.c (oldsigtstp): Renamed, from oldsigstp.
|
||||||
|
(oldsigtstp,oldsighup,oldsigquit): Changed from function pointer
|
||||||
|
type to new typedef name sighandler_t.
|
||||||
|
|
||||||
|
2004-02-05 Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de>
|
||||||
|
|
||||||
|
* src/global.h (tolower) [BSD]: Fix stupid typo in overrides for
|
||||||
|
toupper and tolower.
|
||||||
|
|
||||||
|
2004-01-08 Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de>
|
||||||
|
|
||||||
|
* src/display.c (clearmsg): New function. Does essentially the
|
||||||
|
same thing previously achieved by a rather more cryptic
|
||||||
|
postmsg("").
|
||||||
|
(postfatal): New function to printout a fatal error message and
|
||||||
|
terminate the program. Works like posterr(), but exits curses
|
||||||
|
first, so the message should end up visible after the program
|
||||||
|
exits. Using this instead of posterr()+myexit() fixes SF bug
|
||||||
|
#419510.
|
||||||
|
(dispinit): Use postfatal:().
|
||||||
|
(postmsg): Use clearmsg().
|
||||||
|
(postmsg2): Call curses refresh() after change.
|
||||||
|
|
||||||
|
* src/global.h: Add prototypes for new functions clearmsg() and
|
||||||
|
postfatal().
|
||||||
|
|
||||||
|
* src/find.c (putsource): Use postfatal().
|
||||||
|
|
||||||
|
* src/main.c (main, skiplist): Use postfatal() and clearmsg().
|
||||||
|
|
||||||
|
* src/command.c (command): Use clearmsg().
|
||||||
|
|
||||||
|
* src/build.c (build, seek_to_trailer, movefile): Use postfatal().
|
||||||
|
|
||||||
|
* src/alloc.c (alloctest): Use postfatal().
|
||||||
|
|
||||||
|
* src/display.c (jumpback): Re-instate signal handler, in an
|
||||||
|
attempt to fix problems reported with the general behaviour of
|
||||||
|
signal handlers in cscope.
|
||||||
|
|
||||||
|
* src/scanner.l (ws, wsnl): Two new predefined patterns to catch
|
||||||
|
not only blanks and tabs, but all generally allowed white-space
|
||||||
|
characters in source files: form feeds, vertical tabs, carriage
|
||||||
|
returns. Replaced most occurence of [ \t] and [ \t\n] by these.
|
||||||
|
This is a back-port from fscanner.l. Should fix SF bug #508060.
|
||||||
|
|
||||||
|
Wed Oct 15 16:05:46 2003 Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de>
|
||||||
|
|
||||||
|
* src/dir.c (scan_dir): Don't reduce path to basename before
|
||||||
|
calling issrcfile.
|
||||||
|
(issrcfile): Use either basename or full path, as necessary for
|
||||||
|
the individual tests. Reorganized to reduce nesting.
|
||||||
|
|
||||||
|
Mon Sep 15 12:34:46 2003 Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de>
|
||||||
|
|
||||||
|
* src/egrep.y (yylex, member, egrep, cgotofn): Reindented. Fixed
|
||||||
|
implicit int declarations and casts.
|
||||||
|
|
||||||
|
* src/global.h (tolower, tolower) [BSD]: Fix override definitions
|
||||||
|
for these so they don't mung non-alphabetic input.
|
||||||
|
|
||||||
|
Fri Sep 12 09:33:19 2003 Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de>
|
||||||
|
|
||||||
|
* src/vp.h: Add #include of <sys/types.h> to fix problem on
|
||||||
|
Solaris.
|
||||||
|
|
||||||
|
Fri Sep 12 09:33:19 2003 Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de>
|
||||||
|
|
||||||
|
I'm finally starting a new, GNU-format ChangeLog file. The format
|
||||||
|
of the previous was too terse to be really useful. This begins
|
||||||
|
with the first changes after release 15.5.
|
||||||
|
|
||||||
|
* ChangeLog.old: New file. Renamed copy of old-format ChangeLog
|
||||||
|
file.
|
||||||
|
|
||||||
|
* ChangeLog: Started from scratch.
|
||||||
|
|
||||||
|
|
60
vim_plugins_src/cscope-15.7a/INSTALL
Normal file
60
vim_plugins_src/cscope-15.7a/INSTALL
Normal file
|
@ -0,0 +1,60 @@
|
||||||
|
***** BUILDING:
|
||||||
|
|
||||||
|
This program's build procedure is fairly standard. Try:
|
||||||
|
|
||||||
|
./configure
|
||||||
|
make
|
||||||
|
make install
|
||||||
|
|
||||||
|
Options to the configure script are up to you. For details, run:
|
||||||
|
|
||||||
|
./configure --help
|
||||||
|
|
||||||
|
Please report build problems at:
|
||||||
|
|
||||||
|
http://sourceforge.net/bugs/?func=addbug&group_id=4664
|
||||||
|
|
||||||
|
(yes, even non-Linux problems).
|
||||||
|
|
||||||
|
|
||||||
|
***** TIPS AND PROBLEMS:
|
||||||
|
|
||||||
|
- Try to use flex as the lexical analyzer. The lex scanner is now
|
||||||
|
separated from the flex version to allow the flex scanner to be
|
||||||
|
optimized. It's also a lot harder to diagnose and debug problems
|
||||||
|
without having full access to the particular platform and its version of
|
||||||
|
lex being used. flex is available everywhere --- AT&T lex is not.
|
||||||
|
|
||||||
|
- On Solaris, the native lex fails to catch our redefinition of YYLMAX
|
||||||
|
early enough, which leads to possible buffer overflows.
|
||||||
|
|
||||||
|
- On Linux systems (and possibly others) configure may fail if lex is
|
||||||
|
a synomyn for flex. To fix, do the following:
|
||||||
|
|
||||||
|
make distclean
|
||||||
|
./configure --with-flex
|
||||||
|
make
|
||||||
|
|
||||||
|
- On HP-UX several problems exist when using configure. Try the following
|
||||||
|
to solve this:
|
||||||
|
|
||||||
|
CFLAGS='-Ae -DYYCHAR_ARRAY' CURSES_LIBS=-lHcurses ./configure
|
||||||
|
|
||||||
|
- On Tru64, formerly known as Digital Unix, formerly known as DEC OSF/1,
|
||||||
|
the system-supplied libcurses causes cscope to terminate itself
|
||||||
|
immediately as it comes back to foreground after being suspended by
|
||||||
|
the user (Ctrl-Z). Using GNU Ncurses instead of OSF1 curses works
|
||||||
|
around the problem. According to the lynx and ncurses people, this
|
||||||
|
is a design problem of curses vs. signal handling, at the heart of it.
|
||||||
|
|
||||||
|
- Solaris 2.8 on Intel hardware may not work using the vendor's curses
|
||||||
|
implementation. Using the free NCurses should help.
|
||||||
|
|
||||||
|
- Some ancient Unix filesytems supported only 14 characters in
|
||||||
|
filenames. cscope no longer cares for that by default. If you want
|
||||||
|
to run it on such a system, #define the macro SHORT_NAMES_ONLY manually
|
||||||
|
(there's a definition in global.h you can uncomment).
|
||||||
|
|
||||||
|
Browse to http://cscope.sourceforge.net for more current information,
|
||||||
|
like reported bugs whose solutions haven't been put into this source
|
||||||
|
distribution yet.
|
6
vim_plugins_src/cscope-15.7a/Makefile.am
Normal file
6
vim_plugins_src/cscope-15.7a/Makefile.am
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
## Process this file with automake to produce Makefile.in
|
||||||
|
|
||||||
|
SUBDIRS = doc src contrib
|
||||||
|
|
||||||
|
EXTRA_DIST = packages
|
||||||
|
|
610
vim_plugins_src/cscope-15.7a/Makefile.in
Normal file
610
vim_plugins_src/cscope-15.7a/Makefile.in
Normal file
|
@ -0,0 +1,610 @@
|
||||||
|
# Makefile.in generated by automake 1.9.6 from Makefile.am.
|
||||||
|
# @configure_input@
|
||||||
|
|
||||||
|
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||||
|
# 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||||
|
# This Makefile.in is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||||
|
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||||
|
# PARTICULAR PURPOSE.
|
||||||
|
|
||||||
|
@SET_MAKE@
|
||||||
|
srcdir = @srcdir@
|
||||||
|
top_srcdir = @top_srcdir@
|
||||||
|
VPATH = @srcdir@
|
||||||
|
pkgdatadir = $(datadir)/@PACKAGE@
|
||||||
|
pkglibdir = $(libdir)/@PACKAGE@
|
||||||
|
pkgincludedir = $(includedir)/@PACKAGE@
|
||||||
|
top_builddir = .
|
||||||
|
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||||
|
INSTALL = @INSTALL@
|
||||||
|
install_sh_DATA = $(install_sh) -c -m 644
|
||||||
|
install_sh_PROGRAM = $(install_sh) -c
|
||||||
|
install_sh_SCRIPT = $(install_sh) -c
|
||||||
|
INSTALL_HEADER = $(INSTALL_DATA)
|
||||||
|
transform = $(program_transform_name)
|
||||||
|
NORMAL_INSTALL = :
|
||||||
|
PRE_INSTALL = :
|
||||||
|
POST_INSTALL = :
|
||||||
|
NORMAL_UNINSTALL = :
|
||||||
|
PRE_UNINSTALL = :
|
||||||
|
POST_UNINSTALL = :
|
||||||
|
build_triplet = @build@
|
||||||
|
host_triplet = @host@
|
||||||
|
LIBOBJDIR =
|
||||||
|
DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
|
||||||
|
$(srcdir)/Makefile.in $(srcdir)/config.h.in \
|
||||||
|
$(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \
|
||||||
|
TODO compile config.guess config.sub depcomp install-sh \
|
||||||
|
missing mkinstalldirs ylwrap
|
||||||
|
subdir = .
|
||||||
|
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||||
|
am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
|
||||||
|
$(top_srcdir)/configure.in
|
||||||
|
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||||
|
$(ACLOCAL_M4)
|
||||||
|
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
|
||||||
|
configure.lineno configure.status.lineno
|
||||||
|
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
||||||
|
CONFIG_HEADER = config.h
|
||||||
|
CONFIG_CLEAN_FILES =
|
||||||
|
SOURCES =
|
||||||
|
DIST_SOURCES =
|
||||||
|
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
|
||||||
|
html-recursive info-recursive install-data-recursive \
|
||||||
|
install-exec-recursive install-info-recursive \
|
||||||
|
install-recursive installcheck-recursive installdirs-recursive \
|
||||||
|
pdf-recursive ps-recursive uninstall-info-recursive \
|
||||||
|
uninstall-recursive
|
||||||
|
ETAGS = etags
|
||||||
|
CTAGS = ctags
|
||||||
|
DIST_SUBDIRS = $(SUBDIRS)
|
||||||
|
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||||
|
distdir = $(PACKAGE)-$(VERSION)
|
||||||
|
top_distdir = $(distdir)
|
||||||
|
am__remove_distdir = \
|
||||||
|
{ test ! -d $(distdir) \
|
||||||
|
|| { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
|
||||||
|
&& rm -fr $(distdir); }; }
|
||||||
|
DIST_ARCHIVES = $(distdir).tar.gz
|
||||||
|
GZIP_ENV = --best
|
||||||
|
distuninstallcheck_listfiles = find . -type f -print
|
||||||
|
distcleancheck_listfiles = find . -type f -print
|
||||||
|
ACLOCAL = @ACLOCAL@
|
||||||
|
AMDEP_FALSE = @AMDEP_FALSE@
|
||||||
|
AMDEP_TRUE = @AMDEP_TRUE@
|
||||||
|
AMTAR = @AMTAR@
|
||||||
|
AUTOCONF = @AUTOCONF@
|
||||||
|
AUTOHEADER = @AUTOHEADER@
|
||||||
|
AUTOMAKE = @AUTOMAKE@
|
||||||
|
AWK = @AWK@
|
||||||
|
CC = @CC@
|
||||||
|
CCDEPMODE = @CCDEPMODE@
|
||||||
|
CFLAGS = @CFLAGS@
|
||||||
|
CPP = @CPP@
|
||||||
|
CPPFLAGS = @CPPFLAGS@
|
||||||
|
CURSES_INCLUDEDIR = @CURSES_INCLUDEDIR@
|
||||||
|
CURSES_LIBS = @CURSES_LIBS@
|
||||||
|
CYGPATH_W = @CYGPATH_W@
|
||||||
|
DEFS = @DEFS@
|
||||||
|
DEPDIR = @DEPDIR@
|
||||||
|
ECHO_C = @ECHO_C@
|
||||||
|
ECHO_N = @ECHO_N@
|
||||||
|
ECHO_T = @ECHO_T@
|
||||||
|
EGREP = @EGREP@
|
||||||
|
EXEEXT = @EXEEXT@
|
||||||
|
GNOME_LINUX_FALSE = @GNOME_LINUX_FALSE@
|
||||||
|
GNOME_LINUX_TRUE = @GNOME_LINUX_TRUE@
|
||||||
|
GREP = @GREP@
|
||||||
|
HAS_CURSES_FALSE = @HAS_CURSES_FALSE@
|
||||||
|
HAS_CURSES_TRUE = @HAS_CURSES_TRUE@
|
||||||
|
HAS_GNOME_FALSE = @HAS_GNOME_FALSE@
|
||||||
|
HAS_GNOME_TRUE = @HAS_GNOME_TRUE@
|
||||||
|
INSTALL_DATA = @INSTALL_DATA@
|
||||||
|
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||||
|
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||||
|
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||||
|
LDFLAGS = @LDFLAGS@
|
||||||
|
LEX = @LEX@
|
||||||
|
LEXLIB = @LEXLIB@
|
||||||
|
LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
|
||||||
|
LIBOBJS = @LIBOBJS@
|
||||||
|
LIBS = @LIBS@
|
||||||
|
LTLIBOBJS = @LTLIBOBJS@
|
||||||
|
MAKEINFO = @MAKEINFO@
|
||||||
|
OBJEXT = @OBJEXT@
|
||||||
|
PACKAGE = @PACKAGE@
|
||||||
|
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||||
|
PACKAGE_NAME = @PACKAGE_NAME@
|
||||||
|
PACKAGE_STRING = @PACKAGE_STRING@
|
||||||
|
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||||
|
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||||
|
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||||
|
SET_MAKE = @SET_MAKE@
|
||||||
|
SHELL = @SHELL@
|
||||||
|
STRIP = @STRIP@
|
||||||
|
USING_GNOME2_FALSE = @USING_GNOME2_FALSE@
|
||||||
|
USING_GNOME2_TRUE = @USING_GNOME2_TRUE@
|
||||||
|
USING_LEX_FALSE = @USING_LEX_FALSE@
|
||||||
|
USING_LEX_TRUE = @USING_LEX_TRUE@
|
||||||
|
VERSION = @VERSION@
|
||||||
|
YACC = @YACC@
|
||||||
|
YFLAGS = @YFLAGS@
|
||||||
|
ac_ct_CC = @ac_ct_CC@
|
||||||
|
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
||||||
|
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
||||||
|
am__include = @am__include@
|
||||||
|
am__leading_dot = @am__leading_dot@
|
||||||
|
am__quote = @am__quote@
|
||||||
|
am__tar = @am__tar@
|
||||||
|
am__untar = @am__untar@
|
||||||
|
bindir = @bindir@
|
||||||
|
build = @build@
|
||||||
|
build_alias = @build_alias@
|
||||||
|
build_cpu = @build_cpu@
|
||||||
|
build_os = @build_os@
|
||||||
|
build_vendor = @build_vendor@
|
||||||
|
datadir = @datadir@
|
||||||
|
datarootdir = @datarootdir@
|
||||||
|
docdir = @docdir@
|
||||||
|
dvidir = @dvidir@
|
||||||
|
exec_prefix = @exec_prefix@
|
||||||
|
gnome1 = @gnome1@
|
||||||
|
gnome2 = @gnome2@
|
||||||
|
host = @host@
|
||||||
|
host_alias = @host_alias@
|
||||||
|
host_cpu = @host_cpu@
|
||||||
|
host_os = @host_os@
|
||||||
|
host_vendor = @host_vendor@
|
||||||
|
htmldir = @htmldir@
|
||||||
|
includedir = @includedir@
|
||||||
|
infodir = @infodir@
|
||||||
|
install_sh = @install_sh@
|
||||||
|
libdir = @libdir@
|
||||||
|
libexecdir = @libexecdir@
|
||||||
|
localedir = @localedir@
|
||||||
|
localstatedir = @localstatedir@
|
||||||
|
mandir = @mandir@
|
||||||
|
mkdir_p = @mkdir_p@
|
||||||
|
oldincludedir = @oldincludedir@
|
||||||
|
pdfdir = @pdfdir@
|
||||||
|
prefix = @prefix@
|
||||||
|
program_transform_name = @program_transform_name@
|
||||||
|
psdir = @psdir@
|
||||||
|
sbindir = @sbindir@
|
||||||
|
sharedstatedir = @sharedstatedir@
|
||||||
|
sysconfdir = @sysconfdir@
|
||||||
|
target_alias = @target_alias@
|
||||||
|
SUBDIRS = doc src contrib
|
||||||
|
EXTRA_DIST = packages
|
||||||
|
all: config.h
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) all-recursive
|
||||||
|
|
||||||
|
.SUFFIXES:
|
||||||
|
am--refresh:
|
||||||
|
@:
|
||||||
|
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||||
|
@for dep in $?; do \
|
||||||
|
case '$(am__configure_deps)' in \
|
||||||
|
*$$dep*) \
|
||||||
|
echo ' cd $(srcdir) && $(AUTOMAKE) --gnu '; \
|
||||||
|
cd $(srcdir) && $(AUTOMAKE) --gnu \
|
||||||
|
&& exit 0; \
|
||||||
|
exit 1;; \
|
||||||
|
esac; \
|
||||||
|
done; \
|
||||||
|
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
|
||||||
|
cd $(top_srcdir) && \
|
||||||
|
$(AUTOMAKE) --gnu Makefile
|
||||||
|
.PRECIOUS: Makefile
|
||||||
|
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||||
|
@case '$?' in \
|
||||||
|
*config.status*) \
|
||||||
|
echo ' $(SHELL) ./config.status'; \
|
||||||
|
$(SHELL) ./config.status;; \
|
||||||
|
*) \
|
||||||
|
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
|
||||||
|
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
|
||||||
|
esac;
|
||||||
|
|
||||||
|
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||||
|
$(SHELL) ./config.status --recheck
|
||||||
|
|
||||||
|
$(top_srcdir)/configure: $(am__configure_deps)
|
||||||
|
cd $(srcdir) && $(AUTOCONF)
|
||||||
|
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||||
|
cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
|
||||||
|
|
||||||
|
config.h: stamp-h1
|
||||||
|
@if test ! -f $@; then \
|
||||||
|
rm -f stamp-h1; \
|
||||||
|
$(MAKE) stamp-h1; \
|
||||||
|
else :; fi
|
||||||
|
|
||||||
|
stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
|
||||||
|
@rm -f stamp-h1
|
||||||
|
cd $(top_builddir) && $(SHELL) ./config.status config.h
|
||||||
|
$(srcdir)/config.h.in: $(am__configure_deps)
|
||||||
|
cd $(top_srcdir) && $(AUTOHEADER)
|
||||||
|
rm -f stamp-h1
|
||||||
|
touch $@
|
||||||
|
|
||||||
|
distclean-hdr:
|
||||||
|
-rm -f config.h stamp-h1
|
||||||
|
uninstall-info-am:
|
||||||
|
|
||||||
|
# This directory's subdirectories are mostly independent; you can cd
|
||||||
|
# into them and run `make' without going through this Makefile.
|
||||||
|
# To change the values of `make' variables: instead of editing Makefiles,
|
||||||
|
# (1) if the variable is set in `config.status', edit `config.status'
|
||||||
|
# (which will cause the Makefiles to be regenerated when you run `make');
|
||||||
|
# (2) otherwise, pass the desired values on the `make' command line.
|
||||||
|
$(RECURSIVE_TARGETS):
|
||||||
|
@failcom='exit 1'; \
|
||||||
|
for f in x $$MAKEFLAGS; do \
|
||||||
|
case $$f in \
|
||||||
|
*=* | --[!k]*);; \
|
||||||
|
*k*) failcom='fail=yes';; \
|
||||||
|
esac; \
|
||||||
|
done; \
|
||||||
|
dot_seen=no; \
|
||||||
|
target=`echo $@ | sed s/-recursive//`; \
|
||||||
|
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||||
|
echo "Making $$target in $$subdir"; \
|
||||||
|
if test "$$subdir" = "."; then \
|
||||||
|
dot_seen=yes; \
|
||||||
|
local_target="$$target-am"; \
|
||||||
|
else \
|
||||||
|
local_target="$$target"; \
|
||||||
|
fi; \
|
||||||
|
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||||
|
|| eval $$failcom; \
|
||||||
|
done; \
|
||||||
|
if test "$$dot_seen" = "no"; then \
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
|
||||||
|
fi; test -z "$$fail"
|
||||||
|
|
||||||
|
mostlyclean-recursive clean-recursive distclean-recursive \
|
||||||
|
maintainer-clean-recursive:
|
||||||
|
@failcom='exit 1'; \
|
||||||
|
for f in x $$MAKEFLAGS; do \
|
||||||
|
case $$f in \
|
||||||
|
*=* | --[!k]*);; \
|
||||||
|
*k*) failcom='fail=yes';; \
|
||||||
|
esac; \
|
||||||
|
done; \
|
||||||
|
dot_seen=no; \
|
||||||
|
case "$@" in \
|
||||||
|
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
|
||||||
|
*) list='$(SUBDIRS)' ;; \
|
||||||
|
esac; \
|
||||||
|
rev=''; for subdir in $$list; do \
|
||||||
|
if test "$$subdir" = "."; then :; else \
|
||||||
|
rev="$$subdir $$rev"; \
|
||||||
|
fi; \
|
||||||
|
done; \
|
||||||
|
rev="$$rev ."; \
|
||||||
|
target=`echo $@ | sed s/-recursive//`; \
|
||||||
|
for subdir in $$rev; do \
|
||||||
|
echo "Making $$target in $$subdir"; \
|
||||||
|
if test "$$subdir" = "."; then \
|
||||||
|
local_target="$$target-am"; \
|
||||||
|
else \
|
||||||
|
local_target="$$target"; \
|
||||||
|
fi; \
|
||||||
|
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||||
|
|| eval $$failcom; \
|
||||||
|
done && test -z "$$fail"
|
||||||
|
tags-recursive:
|
||||||
|
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||||
|
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
|
||||||
|
done
|
||||||
|
ctags-recursive:
|
||||||
|
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||||
|
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
|
||||||
|
done
|
||||||
|
|
||||||
|
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||||
|
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||||
|
unique=`for i in $$list; do \
|
||||||
|
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||||
|
done | \
|
||||||
|
$(AWK) ' { files[$$0] = 1; } \
|
||||||
|
END { for (i in files) print i; }'`; \
|
||||||
|
mkid -fID $$unique
|
||||||
|
tags: TAGS
|
||||||
|
|
||||||
|
TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
|
||||||
|
$(TAGS_FILES) $(LISP)
|
||||||
|
tags=; \
|
||||||
|
here=`pwd`; \
|
||||||
|
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
|
||||||
|
include_option=--etags-include; \
|
||||||
|
empty_fix=.; \
|
||||||
|
else \
|
||||||
|
include_option=--include; \
|
||||||
|
empty_fix=; \
|
||||||
|
fi; \
|
||||||
|
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||||
|
if test "$$subdir" = .; then :; else \
|
||||||
|
test ! -f $$subdir/TAGS || \
|
||||||
|
tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
|
||||||
|
fi; \
|
||||||
|
done; \
|
||||||
|
list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
|
||||||
|
unique=`for i in $$list; do \
|
||||||
|
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||||
|
done | \
|
||||||
|
$(AWK) ' { files[$$0] = 1; } \
|
||||||
|
END { for (i in files) print i; }'`; \
|
||||||
|
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
|
||||||
|
test -n "$$unique" || unique=$$empty_fix; \
|
||||||
|
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||||
|
$$tags $$unique; \
|
||||||
|
fi
|
||||||
|
ctags: CTAGS
|
||||||
|
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
|
||||||
|
$(TAGS_FILES) $(LISP)
|
||||||
|
tags=; \
|
||||||
|
here=`pwd`; \
|
||||||
|
list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
|
||||||
|
unique=`for i in $$list; do \
|
||||||
|
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||||
|
done | \
|
||||||
|
$(AWK) ' { files[$$0] = 1; } \
|
||||||
|
END { for (i in files) print i; }'`; \
|
||||||
|
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|
||||||
|
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||||
|
$$tags $$unique
|
||||||
|
|
||||||
|
GTAGS:
|
||||||
|
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||||
|
&& cd $(top_srcdir) \
|
||||||
|
&& gtags -i $(GTAGS_ARGS) $$here
|
||||||
|
|
||||||
|
distclean-tags:
|
||||||
|
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||||
|
|
||||||
|
distdir: $(DISTFILES)
|
||||||
|
$(am__remove_distdir)
|
||||||
|
mkdir $(distdir)
|
||||||
|
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
|
||||||
|
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
|
||||||
|
list='$(DISTFILES)'; for file in $$list; do \
|
||||||
|
case $$file in \
|
||||||
|
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
|
||||||
|
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
|
||||||
|
esac; \
|
||||||
|
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||||
|
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||||
|
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
|
||||||
|
dir="/$$dir"; \
|
||||||
|
$(mkdir_p) "$(distdir)$$dir"; \
|
||||||
|
else \
|
||||||
|
dir=''; \
|
||||||
|
fi; \
|
||||||
|
if test -d $$d/$$file; then \
|
||||||
|
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||||
|
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||||
|
fi; \
|
||||||
|
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
|
||||||
|
else \
|
||||||
|
test -f $(distdir)/$$file \
|
||||||
|
|| cp -p $$d/$$file $(distdir)/$$file \
|
||||||
|
|| exit 1; \
|
||||||
|
fi; \
|
||||||
|
done
|
||||||
|
list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
|
||||||
|
if test "$$subdir" = .; then :; else \
|
||||||
|
test -d "$(distdir)/$$subdir" \
|
||||||
|
|| $(mkdir_p) "$(distdir)/$$subdir" \
|
||||||
|
|| exit 1; \
|
||||||
|
distdir=`$(am__cd) $(distdir) && pwd`; \
|
||||||
|
top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
|
||||||
|
(cd $$subdir && \
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) \
|
||||||
|
top_distdir="$$top_distdir" \
|
||||||
|
distdir="$$distdir/$$subdir" \
|
||||||
|
distdir) \
|
||||||
|
|| exit 1; \
|
||||||
|
fi; \
|
||||||
|
done
|
||||||
|
-find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
|
||||||
|
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
|
||||||
|
! -type d ! -perm -400 -exec chmod a+r {} \; -o \
|
||||||
|
! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
|
||||||
|
|| chmod -R a+r $(distdir)
|
||||||
|
dist-gzip: distdir
|
||||||
|
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||||
|
$(am__remove_distdir)
|
||||||
|
|
||||||
|
dist-bzip2: distdir
|
||||||
|
tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
|
||||||
|
$(am__remove_distdir)
|
||||||
|
|
||||||
|
dist-tarZ: distdir
|
||||||
|
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
|
||||||
|
$(am__remove_distdir)
|
||||||
|
|
||||||
|
dist-shar: distdir
|
||||||
|
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
|
||||||
|
$(am__remove_distdir)
|
||||||
|
|
||||||
|
dist-zip: distdir
|
||||||
|
-rm -f $(distdir).zip
|
||||||
|
zip -rq $(distdir).zip $(distdir)
|
||||||
|
$(am__remove_distdir)
|
||||||
|
|
||||||
|
dist dist-all: distdir
|
||||||
|
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||||
|
$(am__remove_distdir)
|
||||||
|
|
||||||
|
# This target untars the dist file and tries a VPATH configuration. Then
|
||||||
|
# it guarantees that the distribution is self-contained by making another
|
||||||
|
# tarfile.
|
||||||
|
distcheck: dist
|
||||||
|
case '$(DIST_ARCHIVES)' in \
|
||||||
|
*.tar.gz*) \
|
||||||
|
GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
|
||||||
|
*.tar.bz2*) \
|
||||||
|
bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
|
||||||
|
*.tar.Z*) \
|
||||||
|
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
|
||||||
|
*.shar.gz*) \
|
||||||
|
GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
|
||||||
|
*.zip*) \
|
||||||
|
unzip $(distdir).zip ;;\
|
||||||
|
esac
|
||||||
|
chmod -R a-w $(distdir); chmod a+w $(distdir)
|
||||||
|
mkdir $(distdir)/_build
|
||||||
|
mkdir $(distdir)/_inst
|
||||||
|
chmod a-w $(distdir)
|
||||||
|
dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
|
||||||
|
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
|
||||||
|
&& cd $(distdir)/_build \
|
||||||
|
&& ../configure --srcdir=.. --prefix="$$dc_install_base" \
|
||||||
|
$(DISTCHECK_CONFIGURE_FLAGS) \
|
||||||
|
&& $(MAKE) $(AM_MAKEFLAGS) \
|
||||||
|
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
|
||||||
|
&& $(MAKE) $(AM_MAKEFLAGS) check \
|
||||||
|
&& $(MAKE) $(AM_MAKEFLAGS) install \
|
||||||
|
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \
|
||||||
|
&& $(MAKE) $(AM_MAKEFLAGS) uninstall \
|
||||||
|
&& $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
|
||||||
|
distuninstallcheck \
|
||||||
|
&& chmod -R a-w "$$dc_install_base" \
|
||||||
|
&& ({ \
|
||||||
|
(cd ../.. && umask 077 && mkdir "$$dc_destdir") \
|
||||||
|
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
|
||||||
|
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
|
||||||
|
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
|
||||||
|
distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
|
||||||
|
} || { rm -rf "$$dc_destdir"; exit 1; }) \
|
||||||
|
&& rm -rf "$$dc_destdir" \
|
||||||
|
&& $(MAKE) $(AM_MAKEFLAGS) dist \
|
||||||
|
&& rm -rf $(DIST_ARCHIVES) \
|
||||||
|
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck
|
||||||
|
$(am__remove_distdir)
|
||||||
|
@(echo "$(distdir) archives ready for distribution: "; \
|
||||||
|
list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
|
||||||
|
sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}'
|
||||||
|
distuninstallcheck:
|
||||||
|
@cd $(distuninstallcheck_dir) \
|
||||||
|
&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
|
||||||
|
|| { echo "ERROR: files left after uninstall:" ; \
|
||||||
|
if test -n "$(DESTDIR)"; then \
|
||||||
|
echo " (check DESTDIR support)"; \
|
||||||
|
fi ; \
|
||||||
|
$(distuninstallcheck_listfiles) ; \
|
||||||
|
exit 1; } >&2
|
||||||
|
distcleancheck: distclean
|
||||||
|
@if test '$(srcdir)' = . ; then \
|
||||||
|
echo "ERROR: distcleancheck can only run from a VPATH build" ; \
|
||||||
|
exit 1 ; \
|
||||||
|
fi
|
||||||
|
@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
|
||||||
|
|| { echo "ERROR: files left in build directory after distclean:" ; \
|
||||||
|
$(distcleancheck_listfiles) ; \
|
||||||
|
exit 1; } >&2
|
||||||
|
check-am: all-am
|
||||||
|
check: check-recursive
|
||||||
|
all-am: Makefile config.h
|
||||||
|
installdirs: installdirs-recursive
|
||||||
|
installdirs-am:
|
||||||
|
install: install-recursive
|
||||||
|
install-exec: install-exec-recursive
|
||||||
|
install-data: install-data-recursive
|
||||||
|
uninstall: uninstall-recursive
|
||||||
|
|
||||||
|
install-am: all-am
|
||||||
|
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||||
|
|
||||||
|
installcheck: installcheck-recursive
|
||||||
|
install-strip:
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||||
|
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||||
|
`test -z '$(STRIP)' || \
|
||||||
|
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||||
|
mostlyclean-generic:
|
||||||
|
|
||||||
|
clean-generic:
|
||||||
|
|
||||||
|
distclean-generic:
|
||||||
|
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||||
|
|
||||||
|
maintainer-clean-generic:
|
||||||
|
@echo "This command is intended for maintainers to use"
|
||||||
|
@echo "it deletes files that may require special tools to rebuild."
|
||||||
|
clean: clean-recursive
|
||||||
|
|
||||||
|
clean-am: clean-generic mostlyclean-am
|
||||||
|
|
||||||
|
distclean: distclean-recursive
|
||||||
|
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
|
||||||
|
-rm -f Makefile
|
||||||
|
distclean-am: clean-am distclean-generic distclean-hdr distclean-tags
|
||||||
|
|
||||||
|
dvi: dvi-recursive
|
||||||
|
|
||||||
|
dvi-am:
|
||||||
|
|
||||||
|
html: html-recursive
|
||||||
|
|
||||||
|
info: info-recursive
|
||||||
|
|
||||||
|
info-am:
|
||||||
|
|
||||||
|
install-data-am:
|
||||||
|
|
||||||
|
install-exec-am:
|
||||||
|
|
||||||
|
install-info: install-info-recursive
|
||||||
|
|
||||||
|
install-man:
|
||||||
|
|
||||||
|
installcheck-am:
|
||||||
|
|
||||||
|
maintainer-clean: maintainer-clean-recursive
|
||||||
|
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
|
||||||
|
-rm -rf $(top_srcdir)/autom4te.cache
|
||||||
|
-rm -f Makefile
|
||||||
|
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||||
|
|
||||||
|
mostlyclean: mostlyclean-recursive
|
||||||
|
|
||||||
|
mostlyclean-am: mostlyclean-generic
|
||||||
|
|
||||||
|
pdf: pdf-recursive
|
||||||
|
|
||||||
|
pdf-am:
|
||||||
|
|
||||||
|
ps: ps-recursive
|
||||||
|
|
||||||
|
ps-am:
|
||||||
|
|
||||||
|
uninstall-am: uninstall-info-am
|
||||||
|
|
||||||
|
uninstall-info: uninstall-info-recursive
|
||||||
|
|
||||||
|
.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \
|
||||||
|
check-am clean clean-generic clean-recursive ctags \
|
||||||
|
ctags-recursive dist dist-all dist-bzip2 dist-gzip dist-shar \
|
||||||
|
dist-tarZ dist-zip distcheck distclean distclean-generic \
|
||||||
|
distclean-hdr distclean-recursive distclean-tags \
|
||||||
|
distcleancheck distdir distuninstallcheck dvi dvi-am html \
|
||||||
|
html-am info info-am install install-am install-data \
|
||||||
|
install-data-am install-exec install-exec-am install-info \
|
||||||
|
install-info-am install-man install-strip installcheck \
|
||||||
|
installcheck-am installdirs installdirs-am maintainer-clean \
|
||||||
|
maintainer-clean-generic maintainer-clean-recursive \
|
||||||
|
mostlyclean mostlyclean-generic mostlyclean-recursive pdf \
|
||||||
|
pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \
|
||||||
|
uninstall-info-am
|
||||||
|
|
||||||
|
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||||
|
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||||
|
.NOEXPORT:
|
4
vim_plugins_src/cscope-15.7a/NEWS
Normal file
4
vim_plugins_src/cscope-15.7a/NEWS
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
2003/09/04 - Release of version 15.5.
|
||||||
|
2002/08/15 - Release of version 15.4.
|
||||||
|
2001/07/02 - Release of version 15.3.
|
||||||
|
2000/04/18 - Release of Version 13.0 into Open Source. Initial Linux port
|
31
vim_plugins_src/cscope-15.7a/README
Normal file
31
vim_plugins_src/cscope-15.7a/README
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
Cscope is a text screen based source browsing tool. Although it is
|
||||||
|
primarily designed to search C code (including lex and yacc files), it
|
||||||
|
can also be used for C++ code.
|
||||||
|
|
||||||
|
Using cscope, you can easily search for where symbols are used and
|
||||||
|
defined. Cscope is designed to answer questions like:
|
||||||
|
|
||||||
|
Where is this variable used?
|
||||||
|
What is the value of this preprocessor symbol?
|
||||||
|
Where is this function in the source files?
|
||||||
|
What functions call this function?
|
||||||
|
What functions are called by this function?
|
||||||
|
Where does the message "out of space" come from?
|
||||||
|
Where is this source file in the directory structure?
|
||||||
|
What files include this header file?
|
||||||
|
|
||||||
|
It has been released by The Santa Cruz Operation, Inc as Open Source
|
||||||
|
under the BSD license. Please look at COPYING for a detailed
|
||||||
|
description of the license.
|
||||||
|
|
||||||
|
For instructions on how to build and install cscope, see the file,
|
||||||
|
"INSTALL".
|
||||||
|
|
||||||
|
One thing to be pointed out is that this is ancient Unix software
|
||||||
|
predating much of today's security concerns. While we do try to
|
||||||
|
address safety issues as we learn about them, it must be said that
|
||||||
|
this is in no way hardened or secure software. It's designed to be
|
||||||
|
used by developers, not administrators or anonymous users.
|
||||||
|
|
||||||
|
Browse to http://cscope.sourceforge.net for more current information
|
||||||
|
|
24
vim_plugins_src/cscope-15.7a/TODO
Normal file
24
vim_plugins_src/cscope-15.7a/TODO
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
Open
|
||||||
|
|
||||||
|
+ Display the current case mode (^C) onscreen
|
||||||
|
|
||||||
|
+ emacs like key bindings
|
||||||
|
^S for searching (^Y)
|
||||||
|
Up/dwn Arrow support Next/Prev field. ??
|
||||||
|
Inline editing on Input fields ( ??^B/^F )
|
||||||
|
^X^C to quit ( ^Q ??)
|
||||||
|
Pagdwn/PageUp/+/-
|
||||||
|
|
||||||
|
+ Same capabilities as interactive in non interactive (one shot) mode
|
||||||
|
|
||||||
|
+ Provide some how-do-I-use-this-thing doc.
|
||||||
|
|
||||||
|
+ Replace invlib.[ch] by real database. Failing that, at least sanitize it.
|
||||||
|
|
||||||
|
Possible changes:
|
||||||
|
|
||||||
|
? Change to full screen target display and use bottom line for command,
|
||||||
|
control or fn keys for operations (cf pine)
|
||||||
|
|
||||||
|
? Apply added capability from osr5 codebase
|
||||||
|
|
230
vim_plugins_src/cscope-15.7a/acinclude.m4
Normal file
230
vim_plugins_src/cscope-15.7a/acinclude.m4
Normal file
|
@ -0,0 +1,230 @@
|
||||||
|
# $Id: acinclude.m4,v 1.1 2009/04/10 13:39:22 broeker Exp $
|
||||||
|
|
||||||
|
# Copyright (c) 2008 Holger Weiss <holger@jhweiss.de>.
|
||||||
|
#
|
||||||
|
# This code may freely be used, modified and/or redistributed for any purpose.
|
||||||
|
# It would be nice if additions and fixes to this file (including trivial code
|
||||||
|
# cleanups) would be sent back in order to let me include them in the version
|
||||||
|
# available at <http://www.jhweiss.de/software/snprintf.html>. However, this is
|
||||||
|
# not a requirement for using or redistributing (possibly modified) versions of
|
||||||
|
# this file, nor is leaving this notice intact mandatory.
|
||||||
|
|
||||||
|
# HW_HEADER_STDARG_H
|
||||||
|
# ------------------
|
||||||
|
# Define HAVE_STDARG_H to 1 if <stdarg.h> is available.
|
||||||
|
AC_DEFUN([HW_HEADER_STDARG_H],
|
||||||
|
[
|
||||||
|
AC_PREREQ([2.60])dnl Older releases should work if AC_CHECK_HEADERS is used.
|
||||||
|
AC_CHECK_HEADERS_ONCE([stdarg.h])
|
||||||
|
])# HW_HEADER_STDARG_H
|
||||||
|
|
||||||
|
# HW_HEADER_VARARGS_H
|
||||||
|
# -------------------
|
||||||
|
# Define HAVE_VARARGS_H to 1 if <varargs.h> is available.
|
||||||
|
AC_DEFUN([HW_HEADER_VARARGS_H],
|
||||||
|
[
|
||||||
|
AC_PREREQ([2.60])dnl Older releases should work if AC_CHECK_HEADERS is used.
|
||||||
|
AC_CHECK_HEADERS_ONCE([varargs.h])
|
||||||
|
])# HW_HEADER_VARARGS_H
|
||||||
|
|
||||||
|
# HW_FUNC_VA_COPY
|
||||||
|
# ---------------
|
||||||
|
# Set $hw_cv_func_va_copy to "yes" or "no". Define HAVE_VA_COPY to 1 if
|
||||||
|
# $hw_cv_func_va_copy is set to "yes". Note that it's "unspecified whether
|
||||||
|
# va_copy and va_end are macros or identifiers declared with external linkage."
|
||||||
|
# (C99: 7.15.1, 1) Therefore, the presence of va_copy(3) cannot simply "be
|
||||||
|
# tested with #ifdef", as suggested by the Autoconf manual (5.5.1).
|
||||||
|
AC_DEFUN([HW_FUNC_VA_COPY],
|
||||||
|
[
|
||||||
|
AC_REQUIRE([HW_HEADER_STDARG_H])dnl Our check evaluates HAVE_STDARG_H.
|
||||||
|
AC_REQUIRE([HW_HEADER_VARARGS_H])dnl Our check evaluates HAVE_VARARGS_H.
|
||||||
|
AC_CACHE_CHECK([for va_copy],
|
||||||
|
[hw_cv_func_va_copy],
|
||||||
|
[AC_RUN_IFELSE(
|
||||||
|
[AC_LANG_PROGRAM(
|
||||||
|
[[#if HAVE_STDARG_H
|
||||||
|
#include <stdarg.h>
|
||||||
|
#elif HAVE_VARARGS_H
|
||||||
|
#include <varargs.h>
|
||||||
|
#endif]],
|
||||||
|
[[va_list ap, aq; va_copy(aq, ap);]])],
|
||||||
|
[hw_cv_func_va_copy=yes],
|
||||||
|
[hw_cv_func_va_copy=no],
|
||||||
|
[hw_cv_func_va_copy=no])])
|
||||||
|
AS_IF([test "$hw_cv_func_va_copy" = yes],
|
||||||
|
[AC_DEFINE([HAVE_VA_COPY], [1],
|
||||||
|
[Define to 1 if you have the `va_copy' function or macro.])])
|
||||||
|
])# HW_FUNC_VA_COPY
|
||||||
|
|
||||||
|
# HW_FUNC___VA_COPY
|
||||||
|
# -----------------
|
||||||
|
# Set $hw_cv_func___va_copy to "yes" or "no". Define HAVE___VA_COPY to 1 if
|
||||||
|
# $hw_cv_func___va_copy is set to "yes".
|
||||||
|
AC_DEFUN([HW_FUNC___VA_COPY],
|
||||||
|
[
|
||||||
|
AC_REQUIRE([HW_HEADER_STDARG_H])dnl Our check evaluates HAVE_STDARG_H.
|
||||||
|
AC_REQUIRE([HW_HEADER_VARARGS_H])dnl Our check evaluates HAVE_VARARGS_H.
|
||||||
|
AC_CACHE_CHECK([for __va_copy],
|
||||||
|
[hw_cv_func___va_copy],
|
||||||
|
[AC_RUN_IFELSE(
|
||||||
|
[AC_LANG_PROGRAM(
|
||||||
|
[[#if HAVE_STDARG_H
|
||||||
|
#include <stdarg.h>
|
||||||
|
#elif HAVE_VARARGS_H
|
||||||
|
#include <varargs.h>
|
||||||
|
#endif]],
|
||||||
|
[[va_list ap, aq; __va_copy(aq, ap);]])],
|
||||||
|
[hw_cv_func___va_copy=yes],
|
||||||
|
[hw_cv_func___va_copy=no],
|
||||||
|
[hw_cv_func___va_copy=no])])
|
||||||
|
AS_IF([test "$hw_cv_func___va_copy" = yes],
|
||||||
|
[AC_DEFINE([HAVE___VA_COPY], [1],
|
||||||
|
[Define to 1 if you have the `__va_copy' function or macro.])])
|
||||||
|
])# HW_FUNC___VA_COPY
|
||||||
|
|
||||||
|
# HW_FUNC_VSNPRINTF
|
||||||
|
# -----------------
|
||||||
|
# Set $hw_cv_func_vsnprintf and $hw_cv_func_vsnprintf_c99 to "yes" or "no",
|
||||||
|
# respectively. Define HAVE_VSNPRINTF to 1 only if $hw_cv_func_vsnprintf_c99
|
||||||
|
# is set to "yes". Otherwise, define vsnprintf to rpl_vsnprintf and make sure
|
||||||
|
# the replacement function will be built.
|
||||||
|
AC_DEFUN([HW_FUNC_VSNPRINTF],
|
||||||
|
[
|
||||||
|
AC_PREREQ([2.60])dnl 2.59 should work if some AC_TYPE_* macros are replaced.
|
||||||
|
AC_REQUIRE([HW_HEADER_STDARG_H])dnl Our check evaluates HAVE_STDARG_H.
|
||||||
|
AC_CHECK_FUNC([vsnprintf],
|
||||||
|
[hw_cv_func_vsnprintf=yes],
|
||||||
|
[hw_cv_func_vsnprintf=no])
|
||||||
|
AS_IF([test "$hw_cv_func_vsnprintf" = yes],
|
||||||
|
[AC_CACHE_CHECK([whether vsnprintf is C99 compliant],
|
||||||
|
[hw_cv_func_vsnprintf_c99],
|
||||||
|
[AC_RUN_IFELSE(
|
||||||
|
[AC_LANG_PROGRAM(
|
||||||
|
[[#if HAVE_STDARG_H
|
||||||
|
#include <stdarg.h>
|
||||||
|
#endif
|
||||||
|
#include <stdio.h>
|
||||||
|
static int testprintf(char *buf, size_t size, const char *format, ...)
|
||||||
|
{
|
||||||
|
int result;
|
||||||
|
va_list ap;
|
||||||
|
va_start(ap, format);
|
||||||
|
result = vsnprintf(buf, size, format, ap);
|
||||||
|
va_end(ap);
|
||||||
|
return result;
|
||||||
|
}]],
|
||||||
|
[[char buf[43];
|
||||||
|
if (testprintf(buf, 4, "The answer is %27.2g.", 42.0) != 42 ||
|
||||||
|
testprintf(buf, 0, "No, it's %32zu.", (size_t)42) != 42 ||
|
||||||
|
buf[0] != 'T' || buf[3] != '\0')
|
||||||
|
return 1;]])],
|
||||||
|
[hw_cv_func_vsnprintf_c99=yes],
|
||||||
|
[hw_cv_func_vsnprintf_c99=no],
|
||||||
|
[hw_cv_func_vsnprintf_c99=no])])],
|
||||||
|
[hw_cv_func_snprintf_c99=no])
|
||||||
|
AS_IF([test "$hw_cv_func_vsnprintf_c99" = yes],
|
||||||
|
[AC_DEFINE([HAVE_VSNPRINTF], [1],
|
||||||
|
[Define to 1 if you have a C99 compliant `vsnprintf' function.])],
|
||||||
|
[AC_DEFINE([vsnprintf], [rpl_vsnprintf],
|
||||||
|
[Define to rpl_vsnprintf if the replacement function should be used.])
|
||||||
|
AC_CHECK_HEADERS([inttypes.h locale.h stddef.h stdint.h])
|
||||||
|
AC_CHECK_MEMBERS([struct lconv.decimal_point, struct lconv.thousands_sep],
|
||||||
|
[], [], [#include <locale.h>])
|
||||||
|
AC_TYPE_LONG_DOUBLE
|
||||||
|
AC_TYPE_LONG_LONG_INT
|
||||||
|
AC_TYPE_UNSIGNED_LONG_LONG_INT
|
||||||
|
AC_TYPE_SIZE_T
|
||||||
|
AC_TYPE_INTMAX_T
|
||||||
|
AC_TYPE_UINTMAX_T
|
||||||
|
AC_TYPE_UINTPTR_T
|
||||||
|
AC_CHECK_TYPES([ptrdiff_t])
|
||||||
|
AC_CHECK_FUNCS([localeconv])
|
||||||
|
_HW_FUNC_XPRINTF_REPLACE])
|
||||||
|
])# HW_FUNC_VSNPRINTF
|
||||||
|
|
||||||
|
# HW_FUNC_SNPRINTF
|
||||||
|
# ----------------
|
||||||
|
# Set $hw_cv_func_snprintf and $hw_cv_func_snprintf_c99 to "yes" or "no",
|
||||||
|
# respectively. Define HAVE_SNPRINTF to 1 only if $hw_cv_func_snprintf_c99
|
||||||
|
# is set to "yes". Otherwise, define snprintf to rpl_snprintf and make sure
|
||||||
|
# the replacement function will be built.
|
||||||
|
AC_DEFUN([HW_FUNC_SNPRINTF],
|
||||||
|
[
|
||||||
|
AC_REQUIRE([HW_FUNC_VSNPRINTF])dnl Our snprintf(3) calls vsnprintf(3).
|
||||||
|
AC_CHECK_FUNC([snprintf],
|
||||||
|
[hw_cv_func_snprintf=yes],
|
||||||
|
[hw_cv_func_snprintf=no])
|
||||||
|
AS_IF([test "$hw_cv_func_snprintf" = yes],
|
||||||
|
[AC_CACHE_CHECK([whether snprintf is C99 compliant],
|
||||||
|
[hw_cv_func_snprintf_c99],
|
||||||
|
[AC_RUN_IFELSE(
|
||||||
|
[AC_LANG_PROGRAM([[#include <stdio.h>]],
|
||||||
|
[[char buf[43];
|
||||||
|
if (snprintf(buf, 4, "The answer is %27.2g.", 42.0) != 42 ||
|
||||||
|
snprintf(buf, 0, "No, it's %32zu.", (size_t)42) != 42 ||
|
||||||
|
buf[0] != 'T' || buf[3] != '\0')
|
||||||
|
return 1;]])],
|
||||||
|
[hw_cv_func_snprintf_c99=yes],
|
||||||
|
[hw_cv_func_snprintf_c99=no],
|
||||||
|
[hw_cv_func_snprintf_c99=no])])],
|
||||||
|
[hw_cv_func_snprintf_c99=no])
|
||||||
|
AS_IF([test "$hw_cv_func_snprintf_c99" = yes],
|
||||||
|
[AC_DEFINE([HAVE_SNPRINTF], [1],
|
||||||
|
[Define to 1 if you have a C99 compliant `snprintf' function.])],
|
||||||
|
[AC_DEFINE([snprintf], [rpl_snprintf],
|
||||||
|
[Define to rpl_snprintf if the replacement function should be used.])
|
||||||
|
_HW_FUNC_XPRINTF_REPLACE])
|
||||||
|
])# HW_FUNC_SNPRINTF
|
||||||
|
|
||||||
|
# HW_FUNC_VASPRINTF
|
||||||
|
# -----------------
|
||||||
|
# Set $hw_cv_func_vasprintf to "yes" or "no". Define HAVE_VASPRINTF to 1 if
|
||||||
|
# $hw_cv_func_vasprintf is set to "yes". Otherwise, define vasprintf to
|
||||||
|
# rpl_vasprintf and make sure the replacement function will be built.
|
||||||
|
AC_DEFUN([HW_FUNC_VASPRINTF],
|
||||||
|
[
|
||||||
|
AC_REQUIRE([HW_FUNC_VSNPRINTF])dnl Our vasprintf(3) calls vsnprintf(3).
|
||||||
|
AC_CHECK_FUNCS([vasprintf],
|
||||||
|
[hw_cv_func_vasprintf=yes],
|
||||||
|
[hw_cv_func_vasprintf=no])
|
||||||
|
AS_IF([test "$hw_cv_func_vasprintf" = no],
|
||||||
|
[AC_DEFINE([vasprintf], [rpl_vasprintf],
|
||||||
|
[Define to rpl_vasprintf if the replacement function should be used.])
|
||||||
|
AC_CHECK_HEADERS([stdlib.h])
|
||||||
|
HW_FUNC_VA_COPY
|
||||||
|
AS_IF([test "$hw_cv_func_va_copy" = no],
|
||||||
|
[HW_FUNC___VA_COPY])
|
||||||
|
_HW_FUNC_XPRINTF_REPLACE])
|
||||||
|
])# HW_FUNC_VASPRINTF
|
||||||
|
|
||||||
|
# HW_FUNC_ASPRINTF
|
||||||
|
# ----------------
|
||||||
|
# Set $hw_cv_func_asprintf to "yes" or "no". Define HAVE_ASPRINTF to 1 if
|
||||||
|
# $hw_cv_func_asprintf is set to "yes". Otherwise, define asprintf to
|
||||||
|
# rpl_asprintf and make sure the replacement function will be built.
|
||||||
|
AC_DEFUN([HW_FUNC_ASPRINTF],
|
||||||
|
[
|
||||||
|
AC_REQUIRE([HW_FUNC_VASPRINTF])dnl Our asprintf(3) calls vasprintf(3).
|
||||||
|
AC_CHECK_FUNCS([asprintf],
|
||||||
|
[hw_cv_func_asprintf=yes],
|
||||||
|
[hw_cv_func_asprintf=no])
|
||||||
|
AS_IF([test "$hw_cv_func_asprintf" = no],
|
||||||
|
[AC_DEFINE([asprintf], [rpl_asprintf],
|
||||||
|
[Define to rpl_asprintf if the replacement function should be used.])
|
||||||
|
_HW_FUNC_XPRINTF_REPLACE])
|
||||||
|
])# HW_FUNC_ASPRINTF
|
||||||
|
|
||||||
|
# _HW_FUNC_XPRINTF_REPLACE
|
||||||
|
# ------------------------
|
||||||
|
# Arrange for building snprintf.c. Must be called if one or more of the
|
||||||
|
# functions provided by snprintf.c are needed.
|
||||||
|
AC_DEFUN([_HW_FUNC_XPRINTF_REPLACE],
|
||||||
|
[
|
||||||
|
AS_IF([test "x$_hw_cv_func_xprintf_replace_done" != xyes],
|
||||||
|
[AC_C_CONST
|
||||||
|
HW_HEADER_STDARG_H
|
||||||
|
AC_LIBOBJ([snprintf])
|
||||||
|
_hw_cv_func_xprintf_replace_done=yes])
|
||||||
|
])# _HW_FUNC_XPRINTF_REPLACE
|
||||||
|
|
||||||
|
dnl vim: set joinspaces textwidth=80:
|
872
vim_plugins_src/cscope-15.7a/aclocal.m4
vendored
Normal file
872
vim_plugins_src/cscope-15.7a/aclocal.m4
vendored
Normal file
|
@ -0,0 +1,872 @@
|
||||||
|
# generated automatically by aclocal 1.9.6 -*- Autoconf -*-
|
||||||
|
|
||||||
|
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
|
||||||
|
# 2005 Free Software Foundation, Inc.
|
||||||
|
# This file is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||||
|
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||||
|
# PARTICULAR PURPOSE.
|
||||||
|
|
||||||
|
# Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# AM_AUTOMAKE_VERSION(VERSION)
|
||||||
|
# ----------------------------
|
||||||
|
# Automake X.Y traces this macro to ensure aclocal.m4 has been
|
||||||
|
# generated from the m4 files accompanying Automake X.Y.
|
||||||
|
AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"])
|
||||||
|
|
||||||
|
# AM_SET_CURRENT_AUTOMAKE_VERSION
|
||||||
|
# -------------------------------
|
||||||
|
# Call AM_AUTOMAKE_VERSION so it can be traced.
|
||||||
|
# This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
|
||||||
|
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
|
||||||
|
[AM_AUTOMAKE_VERSION([1.9.6])])
|
||||||
|
|
||||||
|
# AM_AUX_DIR_EXPAND -*- Autoconf -*-
|
||||||
|
|
||||||
|
# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
|
||||||
|
# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to
|
||||||
|
# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
|
||||||
|
#
|
||||||
|
# Of course, Automake must honor this variable whenever it calls a
|
||||||
|
# tool from the auxiliary directory. The problem is that $srcdir (and
|
||||||
|
# therefore $ac_aux_dir as well) can be either absolute or relative,
|
||||||
|
# depending on how configure is run. This is pretty annoying, since
|
||||||
|
# it makes $ac_aux_dir quite unusable in subdirectories: in the top
|
||||||
|
# source directory, any form will work fine, but in subdirectories a
|
||||||
|
# relative path needs to be adjusted first.
|
||||||
|
#
|
||||||
|
# $ac_aux_dir/missing
|
||||||
|
# fails when called from a subdirectory if $ac_aux_dir is relative
|
||||||
|
# $top_srcdir/$ac_aux_dir/missing
|
||||||
|
# fails if $ac_aux_dir is absolute,
|
||||||
|
# fails when called from a subdirectory in a VPATH build with
|
||||||
|
# a relative $ac_aux_dir
|
||||||
|
#
|
||||||
|
# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
|
||||||
|
# are both prefixed by $srcdir. In an in-source build this is usually
|
||||||
|
# harmless because $srcdir is `.', but things will broke when you
|
||||||
|
# start a VPATH build or use an absolute $srcdir.
|
||||||
|
#
|
||||||
|
# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
|
||||||
|
# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
|
||||||
|
# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
|
||||||
|
# and then we would define $MISSING as
|
||||||
|
# MISSING="\${SHELL} $am_aux_dir/missing"
|
||||||
|
# This will work as long as MISSING is not called from configure, because
|
||||||
|
# unfortunately $(top_srcdir) has no meaning in configure.
|
||||||
|
# However there are other variables, like CC, which are often used in
|
||||||
|
# configure, and could therefore not use this "fixed" $ac_aux_dir.
|
||||||
|
#
|
||||||
|
# Another solution, used here, is to always expand $ac_aux_dir to an
|
||||||
|
# absolute PATH. The drawback is that using absolute paths prevent a
|
||||||
|
# configured tree to be moved without reconfiguration.
|
||||||
|
|
||||||
|
AC_DEFUN([AM_AUX_DIR_EXPAND],
|
||||||
|
[dnl Rely on autoconf to set up CDPATH properly.
|
||||||
|
AC_PREREQ([2.50])dnl
|
||||||
|
# expand $ac_aux_dir to an absolute path
|
||||||
|
am_aux_dir=`cd $ac_aux_dir && pwd`
|
||||||
|
])
|
||||||
|
|
||||||
|
# AM_CONDITIONAL -*- Autoconf -*-
|
||||||
|
|
||||||
|
# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005
|
||||||
|
# Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# serial 7
|
||||||
|
|
||||||
|
# AM_CONDITIONAL(NAME, SHELL-CONDITION)
|
||||||
|
# -------------------------------------
|
||||||
|
# Define a conditional.
|
||||||
|
AC_DEFUN([AM_CONDITIONAL],
|
||||||
|
[AC_PREREQ(2.52)dnl
|
||||||
|
ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
|
||||||
|
[$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
|
||||||
|
AC_SUBST([$1_TRUE])
|
||||||
|
AC_SUBST([$1_FALSE])
|
||||||
|
if $2; then
|
||||||
|
$1_TRUE=
|
||||||
|
$1_FALSE='#'
|
||||||
|
else
|
||||||
|
$1_TRUE='#'
|
||||||
|
$1_FALSE=
|
||||||
|
fi
|
||||||
|
AC_CONFIG_COMMANDS_PRE(
|
||||||
|
[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
|
||||||
|
AC_MSG_ERROR([[conditional "$1" was never defined.
|
||||||
|
Usually this means the macro was only invoked conditionally.]])
|
||||||
|
fi])])
|
||||||
|
|
||||||
|
|
||||||
|
# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
|
||||||
|
# Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# serial 8
|
||||||
|
|
||||||
|
# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
|
||||||
|
# written in clear, in which case automake, when reading aclocal.m4,
|
||||||
|
# will think it sees a *use*, and therefore will trigger all it's
|
||||||
|
# C support machinery. Also note that it means that autoscan, seeing
|
||||||
|
# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
|
||||||
|
|
||||||
|
|
||||||
|
# _AM_DEPENDENCIES(NAME)
|
||||||
|
# ----------------------
|
||||||
|
# See how the compiler implements dependency checking.
|
||||||
|
# NAME is "CC", "CXX", "GCJ", or "OBJC".
|
||||||
|
# We try a few techniques and use that to set a single cache variable.
|
||||||
|
#
|
||||||
|
# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
|
||||||
|
# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
|
||||||
|
# dependency, and given that the user is not expected to run this macro,
|
||||||
|
# just rely on AC_PROG_CC.
|
||||||
|
AC_DEFUN([_AM_DEPENDENCIES],
|
||||||
|
[AC_REQUIRE([AM_SET_DEPDIR])dnl
|
||||||
|
AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
|
||||||
|
AC_REQUIRE([AM_MAKE_INCLUDE])dnl
|
||||||
|
AC_REQUIRE([AM_DEP_TRACK])dnl
|
||||||
|
|
||||||
|
ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
|
||||||
|
[$1], CXX, [depcc="$CXX" am_compiler_list=],
|
||||||
|
[$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
|
||||||
|
[$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
|
||||||
|
[depcc="$$1" am_compiler_list=])
|
||||||
|
|
||||||
|
AC_CACHE_CHECK([dependency style of $depcc],
|
||||||
|
[am_cv_$1_dependencies_compiler_type],
|
||||||
|
[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
|
||||||
|
# We make a subdir and do the tests there. Otherwise we can end up
|
||||||
|
# making bogus files that we don't know about and never remove. For
|
||||||
|
# instance it was reported that on HP-UX the gcc test will end up
|
||||||
|
# making a dummy file named `D' -- because `-MD' means `put the output
|
||||||
|
# in D'.
|
||||||
|
mkdir conftest.dir
|
||||||
|
# Copy depcomp to subdir because otherwise we won't find it if we're
|
||||||
|
# using a relative directory.
|
||||||
|
cp "$am_depcomp" conftest.dir
|
||||||
|
cd conftest.dir
|
||||||
|
# We will build objects and dependencies in a subdirectory because
|
||||||
|
# it helps to detect inapplicable dependency modes. For instance
|
||||||
|
# both Tru64's cc and ICC support -MD to output dependencies as a
|
||||||
|
# side effect of compilation, but ICC will put the dependencies in
|
||||||
|
# the current directory while Tru64 will put them in the object
|
||||||
|
# directory.
|
||||||
|
mkdir sub
|
||||||
|
|
||||||
|
am_cv_$1_dependencies_compiler_type=none
|
||||||
|
if test "$am_compiler_list" = ""; then
|
||||||
|
am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
|
||||||
|
fi
|
||||||
|
for depmode in $am_compiler_list; do
|
||||||
|
# Setup a source with many dependencies, because some compilers
|
||||||
|
# like to wrap large dependency lists on column 80 (with \), and
|
||||||
|
# we should not choose a depcomp mode which is confused by this.
|
||||||
|
#
|
||||||
|
# We need to recreate these files for each test, as the compiler may
|
||||||
|
# overwrite some of them when testing with obscure command lines.
|
||||||
|
# This happens at least with the AIX C compiler.
|
||||||
|
: > sub/conftest.c
|
||||||
|
for i in 1 2 3 4 5 6; do
|
||||||
|
echo '#include "conftst'$i'.h"' >> sub/conftest.c
|
||||||
|
# Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
|
||||||
|
# Solaris 8's {/usr,}/bin/sh.
|
||||||
|
touch sub/conftst$i.h
|
||||||
|
done
|
||||||
|
echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
|
||||||
|
|
||||||
|
case $depmode in
|
||||||
|
nosideeffect)
|
||||||
|
# after this tag, mechanisms are not by side-effect, so they'll
|
||||||
|
# only be used when explicitly requested
|
||||||
|
if test "x$enable_dependency_tracking" = xyes; then
|
||||||
|
continue
|
||||||
|
else
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
none) break ;;
|
||||||
|
esac
|
||||||
|
# We check with `-c' and `-o' for the sake of the "dashmstdout"
|
||||||
|
# mode. It turns out that the SunPro C++ compiler does not properly
|
||||||
|
# handle `-M -o', and we need to detect this.
|
||||||
|
if depmode=$depmode \
|
||||||
|
source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
|
||||||
|
depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
|
||||||
|
$SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
|
||||||
|
>/dev/null 2>conftest.err &&
|
||||||
|
grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
|
||||||
|
grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
|
||||||
|
${MAKE-make} -s -f confmf > /dev/null 2>&1; then
|
||||||
|
# icc doesn't choke on unknown options, it will just issue warnings
|
||||||
|
# or remarks (even with -Werror). So we grep stderr for any message
|
||||||
|
# that says an option was ignored or not supported.
|
||||||
|
# When given -MP, icc 7.0 and 7.1 complain thusly:
|
||||||
|
# icc: Command line warning: ignoring option '-M'; no argument required
|
||||||
|
# The diagnosis changed in icc 8.0:
|
||||||
|
# icc: Command line remark: option '-MP' not supported
|
||||||
|
if (grep 'ignoring option' conftest.err ||
|
||||||
|
grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
|
||||||
|
am_cv_$1_dependencies_compiler_type=$depmode
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
cd ..
|
||||||
|
rm -rf conftest.dir
|
||||||
|
else
|
||||||
|
am_cv_$1_dependencies_compiler_type=none
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
|
||||||
|
AM_CONDITIONAL([am__fastdep$1], [
|
||||||
|
test "x$enable_dependency_tracking" != xno \
|
||||||
|
&& test "$am_cv_$1_dependencies_compiler_type" = gcc3])
|
||||||
|
])
|
||||||
|
|
||||||
|
|
||||||
|
# AM_SET_DEPDIR
|
||||||
|
# -------------
|
||||||
|
# Choose a directory name for dependency files.
|
||||||
|
# This macro is AC_REQUIREd in _AM_DEPENDENCIES
|
||||||
|
AC_DEFUN([AM_SET_DEPDIR],
|
||||||
|
[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
|
||||||
|
AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
|
||||||
|
])
|
||||||
|
|
||||||
|
|
||||||
|
# AM_DEP_TRACK
|
||||||
|
# ------------
|
||||||
|
AC_DEFUN([AM_DEP_TRACK],
|
||||||
|
[AC_ARG_ENABLE(dependency-tracking,
|
||||||
|
[ --disable-dependency-tracking speeds up one-time build
|
||||||
|
--enable-dependency-tracking do not reject slow dependency extractors])
|
||||||
|
if test "x$enable_dependency_tracking" != xno; then
|
||||||
|
am_depcomp="$ac_aux_dir/depcomp"
|
||||||
|
AMDEPBACKSLASH='\'
|
||||||
|
fi
|
||||||
|
AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
|
||||||
|
AC_SUBST([AMDEPBACKSLASH])
|
||||||
|
])
|
||||||
|
|
||||||
|
# Generate code to set up dependency tracking. -*- Autoconf -*-
|
||||||
|
|
||||||
|
# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
|
||||||
|
# Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
#serial 3
|
||||||
|
|
||||||
|
# _AM_OUTPUT_DEPENDENCY_COMMANDS
|
||||||
|
# ------------------------------
|
||||||
|
AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||||
|
[for mf in $CONFIG_FILES; do
|
||||||
|
# Strip MF so we end up with the name of the file.
|
||||||
|
mf=`echo "$mf" | sed -e 's/:.*$//'`
|
||||||
|
# Check whether this is an Automake generated Makefile or not.
|
||||||
|
# We used to match only the files named `Makefile.in', but
|
||||||
|
# some people rename them; so instead we look at the file content.
|
||||||
|
# Grep'ing the first line is not enough: some people post-process
|
||||||
|
# each Makefile.in and add a new line on top of each file to say so.
|
||||||
|
# So let's grep whole file.
|
||||||
|
if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
|
||||||
|
dirpart=`AS_DIRNAME("$mf")`
|
||||||
|
else
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
# Extract the definition of DEPDIR, am__include, and am__quote
|
||||||
|
# from the Makefile without running `make'.
|
||||||
|
DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
|
||||||
|
test -z "$DEPDIR" && continue
|
||||||
|
am__include=`sed -n 's/^am__include = //p' < "$mf"`
|
||||||
|
test -z "am__include" && continue
|
||||||
|
am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
|
||||||
|
# When using ansi2knr, U may be empty or an underscore; expand it
|
||||||
|
U=`sed -n 's/^U = //p' < "$mf"`
|
||||||
|
# Find all dependency output files, they are included files with
|
||||||
|
# $(DEPDIR) in their names. We invoke sed twice because it is the
|
||||||
|
# simplest approach to changing $(DEPDIR) to its actual value in the
|
||||||
|
# expansion.
|
||||||
|
for file in `sed -n "
|
||||||
|
s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
|
||||||
|
sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
|
||||||
|
# Make sure the directory exists.
|
||||||
|
test -f "$dirpart/$file" && continue
|
||||||
|
fdir=`AS_DIRNAME(["$file"])`
|
||||||
|
AS_MKDIR_P([$dirpart/$fdir])
|
||||||
|
# echo "creating $dirpart/$file"
|
||||||
|
echo '# dummy' > "$dirpart/$file"
|
||||||
|
done
|
||||||
|
done
|
||||||
|
])# _AM_OUTPUT_DEPENDENCY_COMMANDS
|
||||||
|
|
||||||
|
|
||||||
|
# AM_OUTPUT_DEPENDENCY_COMMANDS
|
||||||
|
# -----------------------------
|
||||||
|
# This macro should only be invoked once -- use via AC_REQUIRE.
|
||||||
|
#
|
||||||
|
# This code is only required when automatic dependency tracking
|
||||||
|
# is enabled. FIXME. This creates each `.P' file that we will
|
||||||
|
# need in order to bootstrap the dependency handling code.
|
||||||
|
AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||||
|
[AC_CONFIG_COMMANDS([depfiles],
|
||||||
|
[test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||||
|
[AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
|
||||||
|
])
|
||||||
|
|
||||||
|
# Do all the work for Automake. -*- Autoconf -*-
|
||||||
|
|
||||||
|
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
|
||||||
|
# Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# serial 12
|
||||||
|
|
||||||
|
# This macro actually does too much. Some checks are only needed if
|
||||||
|
# your package does certain things. But this isn't really a big deal.
|
||||||
|
|
||||||
|
# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
|
||||||
|
# AM_INIT_AUTOMAKE([OPTIONS])
|
||||||
|
# -----------------------------------------------
|
||||||
|
# The call with PACKAGE and VERSION arguments is the old style
|
||||||
|
# call (pre autoconf-2.50), which is being phased out. PACKAGE
|
||||||
|
# and VERSION should now be passed to AC_INIT and removed from
|
||||||
|
# the call to AM_INIT_AUTOMAKE.
|
||||||
|
# We support both call styles for the transition. After
|
||||||
|
# the next Automake release, Autoconf can make the AC_INIT
|
||||||
|
# arguments mandatory, and then we can depend on a new Autoconf
|
||||||
|
# release and drop the old call support.
|
||||||
|
AC_DEFUN([AM_INIT_AUTOMAKE],
|
||||||
|
[AC_PREREQ([2.58])dnl
|
||||||
|
dnl Autoconf wants to disallow AM_ names. We explicitly allow
|
||||||
|
dnl the ones we care about.
|
||||||
|
m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
|
||||||
|
AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
|
||||||
|
AC_REQUIRE([AC_PROG_INSTALL])dnl
|
||||||
|
# test to see if srcdir already configured
|
||||||
|
if test "`cd $srcdir && pwd`" != "`pwd`" &&
|
||||||
|
test -f $srcdir/config.status; then
|
||||||
|
AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
|
||||||
|
fi
|
||||||
|
|
||||||
|
# test whether we have cygpath
|
||||||
|
if test -z "$CYGPATH_W"; then
|
||||||
|
if (cygpath --version) >/dev/null 2>/dev/null; then
|
||||||
|
CYGPATH_W='cygpath -w'
|
||||||
|
else
|
||||||
|
CYGPATH_W=echo
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
AC_SUBST([CYGPATH_W])
|
||||||
|
|
||||||
|
# Define the identity of the package.
|
||||||
|
dnl Distinguish between old-style and new-style calls.
|
||||||
|
m4_ifval([$2],
|
||||||
|
[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
|
||||||
|
AC_SUBST([PACKAGE], [$1])dnl
|
||||||
|
AC_SUBST([VERSION], [$2])],
|
||||||
|
[_AM_SET_OPTIONS([$1])dnl
|
||||||
|
AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
|
||||||
|
AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
|
||||||
|
|
||||||
|
_AM_IF_OPTION([no-define],,
|
||||||
|
[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
|
||||||
|
AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
|
||||||
|
|
||||||
|
# Some tools Automake needs.
|
||||||
|
AC_REQUIRE([AM_SANITY_CHECK])dnl
|
||||||
|
AC_REQUIRE([AC_ARG_PROGRAM])dnl
|
||||||
|
AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
|
||||||
|
AM_MISSING_PROG(AUTOCONF, autoconf)
|
||||||
|
AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
|
||||||
|
AM_MISSING_PROG(AUTOHEADER, autoheader)
|
||||||
|
AM_MISSING_PROG(MAKEINFO, makeinfo)
|
||||||
|
AM_PROG_INSTALL_SH
|
||||||
|
AM_PROG_INSTALL_STRIP
|
||||||
|
AC_REQUIRE([AM_PROG_MKDIR_P])dnl
|
||||||
|
# We need awk for the "check" target. The system "awk" is bad on
|
||||||
|
# some platforms.
|
||||||
|
AC_REQUIRE([AC_PROG_AWK])dnl
|
||||||
|
AC_REQUIRE([AC_PROG_MAKE_SET])dnl
|
||||||
|
AC_REQUIRE([AM_SET_LEADING_DOT])dnl
|
||||||
|
_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
|
||||||
|
[_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
|
||||||
|
[_AM_PROG_TAR([v7])])])
|
||||||
|
_AM_IF_OPTION([no-dependencies],,
|
||||||
|
[AC_PROVIDE_IFELSE([AC_PROG_CC],
|
||||||
|
[_AM_DEPENDENCIES(CC)],
|
||||||
|
[define([AC_PROG_CC],
|
||||||
|
defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
|
||||||
|
AC_PROVIDE_IFELSE([AC_PROG_CXX],
|
||||||
|
[_AM_DEPENDENCIES(CXX)],
|
||||||
|
[define([AC_PROG_CXX],
|
||||||
|
defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
|
||||||
|
])
|
||||||
|
])
|
||||||
|
|
||||||
|
|
||||||
|
# When config.status generates a header, we must update the stamp-h file.
|
||||||
|
# This file resides in the same directory as the config header
|
||||||
|
# that is generated. The stamp files are numbered to have different names.
|
||||||
|
|
||||||
|
# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
|
||||||
|
# loop where config.status creates the headers, so we can generate
|
||||||
|
# our stamp files there.
|
||||||
|
AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
|
||||||
|
[# Compute $1's index in $config_headers.
|
||||||
|
_am_stamp_count=1
|
||||||
|
for _am_header in $config_headers :; do
|
||||||
|
case $_am_header in
|
||||||
|
$1 | $1:* )
|
||||||
|
break ;;
|
||||||
|
* )
|
||||||
|
_am_stamp_count=`expr $_am_stamp_count + 1` ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count])
|
||||||
|
|
||||||
|
# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# AM_PROG_INSTALL_SH
|
||||||
|
# ------------------
|
||||||
|
# Define $install_sh.
|
||||||
|
AC_DEFUN([AM_PROG_INSTALL_SH],
|
||||||
|
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
|
||||||
|
install_sh=${install_sh-"$am_aux_dir/install-sh"}
|
||||||
|
AC_SUBST(install_sh)])
|
||||||
|
|
||||||
|
# Copyright (C) 2003, 2005 Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# serial 2
|
||||||
|
|
||||||
|
# Check whether the underlying file-system supports filenames
|
||||||
|
# with a leading dot. For instance MS-DOS doesn't.
|
||||||
|
AC_DEFUN([AM_SET_LEADING_DOT],
|
||||||
|
[rm -rf .tst 2>/dev/null
|
||||||
|
mkdir .tst 2>/dev/null
|
||||||
|
if test -d .tst; then
|
||||||
|
am__leading_dot=.
|
||||||
|
else
|
||||||
|
am__leading_dot=_
|
||||||
|
fi
|
||||||
|
rmdir .tst 2>/dev/null
|
||||||
|
AC_SUBST([am__leading_dot])])
|
||||||
|
|
||||||
|
# Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2005
|
||||||
|
# Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# serial 5
|
||||||
|
|
||||||
|
# AM_PROG_LEX
|
||||||
|
# -----------
|
||||||
|
# Autoconf leaves LEX=: if lex or flex can't be found. Change that to a
|
||||||
|
# "missing" invocation, for better error output.
|
||||||
|
AC_DEFUN([AM_PROG_LEX],
|
||||||
|
[AC_PREREQ(2.50)dnl
|
||||||
|
AC_REQUIRE([AM_MISSING_HAS_RUN])dnl
|
||||||
|
AC_REQUIRE([AC_PROG_LEX])dnl
|
||||||
|
if test "$LEX" = :; then
|
||||||
|
LEX=${am_missing_run}flex
|
||||||
|
fi])
|
||||||
|
|
||||||
|
# Check to see how 'make' treats includes. -*- Autoconf -*-
|
||||||
|
|
||||||
|
# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# serial 3
|
||||||
|
|
||||||
|
# AM_MAKE_INCLUDE()
|
||||||
|
# -----------------
|
||||||
|
# Check to see how make treats includes.
|
||||||
|
AC_DEFUN([AM_MAKE_INCLUDE],
|
||||||
|
[am_make=${MAKE-make}
|
||||||
|
cat > confinc << 'END'
|
||||||
|
am__doit:
|
||||||
|
@echo done
|
||||||
|
.PHONY: am__doit
|
||||||
|
END
|
||||||
|
# If we don't find an include directive, just comment out the code.
|
||||||
|
AC_MSG_CHECKING([for style of include used by $am_make])
|
||||||
|
am__include="#"
|
||||||
|
am__quote=
|
||||||
|
_am_result=none
|
||||||
|
# First try GNU make style include.
|
||||||
|
echo "include confinc" > confmf
|
||||||
|
# We grep out `Entering directory' and `Leaving directory'
|
||||||
|
# messages which can occur if `w' ends up in MAKEFLAGS.
|
||||||
|
# In particular we don't look at `^make:' because GNU make might
|
||||||
|
# be invoked under some other name (usually "gmake"), in which
|
||||||
|
# case it prints its new name instead of `make'.
|
||||||
|
if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
|
||||||
|
am__include=include
|
||||||
|
am__quote=
|
||||||
|
_am_result=GNU
|
||||||
|
fi
|
||||||
|
# Now try BSD make style include.
|
||||||
|
if test "$am__include" = "#"; then
|
||||||
|
echo '.include "confinc"' > confmf
|
||||||
|
if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
|
||||||
|
am__include=.include
|
||||||
|
am__quote="\""
|
||||||
|
_am_result=BSD
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
AC_SUBST([am__include])
|
||||||
|
AC_SUBST([am__quote])
|
||||||
|
AC_MSG_RESULT([$_am_result])
|
||||||
|
rm -f confinc confmf
|
||||||
|
])
|
||||||
|
|
||||||
|
# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
|
||||||
|
|
||||||
|
# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2005
|
||||||
|
# Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# serial 4
|
||||||
|
|
||||||
|
# AM_MISSING_PROG(NAME, PROGRAM)
|
||||||
|
# ------------------------------
|
||||||
|
AC_DEFUN([AM_MISSING_PROG],
|
||||||
|
[AC_REQUIRE([AM_MISSING_HAS_RUN])
|
||||||
|
$1=${$1-"${am_missing_run}$2"}
|
||||||
|
AC_SUBST($1)])
|
||||||
|
|
||||||
|
|
||||||
|
# AM_MISSING_HAS_RUN
|
||||||
|
# ------------------
|
||||||
|
# Define MISSING if not defined so far and test if it supports --run.
|
||||||
|
# If it does, set am_missing_run to use it, otherwise, to nothing.
|
||||||
|
AC_DEFUN([AM_MISSING_HAS_RUN],
|
||||||
|
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
|
||||||
|
test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
|
||||||
|
# Use eval to expand $SHELL
|
||||||
|
if eval "$MISSING --run true"; then
|
||||||
|
am_missing_run="$MISSING --run "
|
||||||
|
else
|
||||||
|
am_missing_run=
|
||||||
|
AC_MSG_WARN([`missing' script is too old or missing])
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
|
||||||
|
# Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# AM_PROG_MKDIR_P
|
||||||
|
# ---------------
|
||||||
|
# Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise.
|
||||||
|
#
|
||||||
|
# Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories
|
||||||
|
# created by `make install' are always world readable, even if the
|
||||||
|
# installer happens to have an overly restrictive umask (e.g. 077).
|
||||||
|
# This was a mistake. There are at least two reasons why we must not
|
||||||
|
# use `-m 0755':
|
||||||
|
# - it causes special bits like SGID to be ignored,
|
||||||
|
# - it may be too restrictive (some setups expect 775 directories).
|
||||||
|
#
|
||||||
|
# Do not use -m 0755 and let people choose whatever they expect by
|
||||||
|
# setting umask.
|
||||||
|
#
|
||||||
|
# We cannot accept any implementation of `mkdir' that recognizes `-p'.
|
||||||
|
# Some implementations (such as Solaris 8's) are not thread-safe: if a
|
||||||
|
# parallel make tries to run `mkdir -p a/b' and `mkdir -p a/c'
|
||||||
|
# concurrently, both version can detect that a/ is missing, but only
|
||||||
|
# one can create it and the other will error out. Consequently we
|
||||||
|
# restrict ourselves to GNU make (using the --version option ensures
|
||||||
|
# this.)
|
||||||
|
AC_DEFUN([AM_PROG_MKDIR_P],
|
||||||
|
[if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
|
||||||
|
# We used to keeping the `.' as first argument, in order to
|
||||||
|
# allow $(mkdir_p) to be used without argument. As in
|
||||||
|
# $(mkdir_p) $(somedir)
|
||||||
|
# where $(somedir) is conditionally defined. However this is wrong
|
||||||
|
# for two reasons:
|
||||||
|
# 1. if the package is installed by a user who cannot write `.'
|
||||||
|
# make install will fail,
|
||||||
|
# 2. the above comment should most certainly read
|
||||||
|
# $(mkdir_p) $(DESTDIR)$(somedir)
|
||||||
|
# so it does not work when $(somedir) is undefined and
|
||||||
|
# $(DESTDIR) is not.
|
||||||
|
# To support the latter case, we have to write
|
||||||
|
# test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir),
|
||||||
|
# so the `.' trick is pointless.
|
||||||
|
mkdir_p='mkdir -p --'
|
||||||
|
else
|
||||||
|
# On NextStep and OpenStep, the `mkdir' command does not
|
||||||
|
# recognize any option. It will interpret all options as
|
||||||
|
# directories to create, and then abort because `.' already
|
||||||
|
# exists.
|
||||||
|
for d in ./-p ./--version;
|
||||||
|
do
|
||||||
|
test -d $d && rmdir $d
|
||||||
|
done
|
||||||
|
# $(mkinstalldirs) is defined by Automake if mkinstalldirs exists.
|
||||||
|
if test -f "$ac_aux_dir/mkinstalldirs"; then
|
||||||
|
mkdir_p='$(mkinstalldirs)'
|
||||||
|
else
|
||||||
|
mkdir_p='$(install_sh) -d'
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
AC_SUBST([mkdir_p])])
|
||||||
|
|
||||||
|
# Helper functions for option handling. -*- Autoconf -*-
|
||||||
|
|
||||||
|
# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# serial 3
|
||||||
|
|
||||||
|
# _AM_MANGLE_OPTION(NAME)
|
||||||
|
# -----------------------
|
||||||
|
AC_DEFUN([_AM_MANGLE_OPTION],
|
||||||
|
[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
|
||||||
|
|
||||||
|
# _AM_SET_OPTION(NAME)
|
||||||
|
# ------------------------------
|
||||||
|
# Set option NAME. Presently that only means defining a flag for this option.
|
||||||
|
AC_DEFUN([_AM_SET_OPTION],
|
||||||
|
[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
|
||||||
|
|
||||||
|
# _AM_SET_OPTIONS(OPTIONS)
|
||||||
|
# ----------------------------------
|
||||||
|
# OPTIONS is a space-separated list of Automake options.
|
||||||
|
AC_DEFUN([_AM_SET_OPTIONS],
|
||||||
|
[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
|
||||||
|
|
||||||
|
# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
|
||||||
|
# -------------------------------------------
|
||||||
|
# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
|
||||||
|
AC_DEFUN([_AM_IF_OPTION],
|
||||||
|
[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
|
||||||
|
|
||||||
|
# Check to make sure that the build environment is sane. -*- Autoconf -*-
|
||||||
|
|
||||||
|
# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
|
||||||
|
# Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# serial 4
|
||||||
|
|
||||||
|
# AM_SANITY_CHECK
|
||||||
|
# ---------------
|
||||||
|
AC_DEFUN([AM_SANITY_CHECK],
|
||||||
|
[AC_MSG_CHECKING([whether build environment is sane])
|
||||||
|
# Just in case
|
||||||
|
sleep 1
|
||||||
|
echo timestamp > conftest.file
|
||||||
|
# Do `set' in a subshell so we don't clobber the current shell's
|
||||||
|
# arguments. Must try -L first in case configure is actually a
|
||||||
|
# symlink; some systems play weird games with the mod time of symlinks
|
||||||
|
# (eg FreeBSD returns the mod time of the symlink's containing
|
||||||
|
# directory).
|
||||||
|
if (
|
||||||
|
set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
|
||||||
|
if test "$[*]" = "X"; then
|
||||||
|
# -L didn't work.
|
||||||
|
set X `ls -t $srcdir/configure conftest.file`
|
||||||
|
fi
|
||||||
|
rm -f conftest.file
|
||||||
|
if test "$[*]" != "X $srcdir/configure conftest.file" \
|
||||||
|
&& test "$[*]" != "X conftest.file $srcdir/configure"; then
|
||||||
|
|
||||||
|
# If neither matched, then we have a broken ls. This can happen
|
||||||
|
# if, for instance, CONFIG_SHELL is bash and it inherits a
|
||||||
|
# broken ls alias from the environment. This has actually
|
||||||
|
# happened. Such a system could not be considered "sane".
|
||||||
|
AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
|
||||||
|
alias in your environment])
|
||||||
|
fi
|
||||||
|
|
||||||
|
test "$[2]" = conftest.file
|
||||||
|
)
|
||||||
|
then
|
||||||
|
# Ok.
|
||||||
|
:
|
||||||
|
else
|
||||||
|
AC_MSG_ERROR([newly created file is older than distributed files!
|
||||||
|
Check your system clock])
|
||||||
|
fi
|
||||||
|
AC_MSG_RESULT(yes)])
|
||||||
|
|
||||||
|
# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# AM_PROG_INSTALL_STRIP
|
||||||
|
# ---------------------
|
||||||
|
# One issue with vendor `install' (even GNU) is that you can't
|
||||||
|
# specify the program used to strip binaries. This is especially
|
||||||
|
# annoying in cross-compiling environments, where the build's strip
|
||||||
|
# is unlikely to handle the host's binaries.
|
||||||
|
# Fortunately install-sh will honor a STRIPPROG variable, so we
|
||||||
|
# always use install-sh in `make install-strip', and initialize
|
||||||
|
# STRIPPROG with the value of the STRIP variable (set by the user).
|
||||||
|
AC_DEFUN([AM_PROG_INSTALL_STRIP],
|
||||||
|
[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
|
||||||
|
# Installed binaries are usually stripped using `strip' when the user
|
||||||
|
# run `make install-strip'. However `strip' might not be the right
|
||||||
|
# tool to use in cross-compilation environments, therefore Automake
|
||||||
|
# will honor the `STRIP' environment variable to overrule this program.
|
||||||
|
dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
|
||||||
|
if test "$cross_compiling" != no; then
|
||||||
|
AC_CHECK_TOOL([STRIP], [strip], :)
|
||||||
|
fi
|
||||||
|
INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
|
||||||
|
AC_SUBST([INSTALL_STRIP_PROGRAM])])
|
||||||
|
|
||||||
|
# Check how to create a tarball. -*- Autoconf -*-
|
||||||
|
|
||||||
|
# Copyright (C) 2004, 2005 Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# serial 2
|
||||||
|
|
||||||
|
# _AM_PROG_TAR(FORMAT)
|
||||||
|
# --------------------
|
||||||
|
# Check how to create a tarball in format FORMAT.
|
||||||
|
# FORMAT should be one of `v7', `ustar', or `pax'.
|
||||||
|
#
|
||||||
|
# Substitute a variable $(am__tar) that is a command
|
||||||
|
# writing to stdout a FORMAT-tarball containing the directory
|
||||||
|
# $tardir.
|
||||||
|
# tardir=directory && $(am__tar) > result.tar
|
||||||
|
#
|
||||||
|
# Substitute a variable $(am__untar) that extract such
|
||||||
|
# a tarball read from stdin.
|
||||||
|
# $(am__untar) < result.tar
|
||||||
|
AC_DEFUN([_AM_PROG_TAR],
|
||||||
|
[# Always define AMTAR for backward compatibility.
|
||||||
|
AM_MISSING_PROG([AMTAR], [tar])
|
||||||
|
m4_if([$1], [v7],
|
||||||
|
[am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
|
||||||
|
[m4_case([$1], [ustar],, [pax],,
|
||||||
|
[m4_fatal([Unknown tar format])])
|
||||||
|
AC_MSG_CHECKING([how to create a $1 tar archive])
|
||||||
|
# Loop over all known methods to create a tar archive until one works.
|
||||||
|
_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
|
||||||
|
_am_tools=${am_cv_prog_tar_$1-$_am_tools}
|
||||||
|
# Do not fold the above two line into one, because Tru64 sh and
|
||||||
|
# Solaris sh will not grok spaces in the rhs of `-'.
|
||||||
|
for _am_tool in $_am_tools
|
||||||
|
do
|
||||||
|
case $_am_tool in
|
||||||
|
gnutar)
|
||||||
|
for _am_tar in tar gnutar gtar;
|
||||||
|
do
|
||||||
|
AM_RUN_LOG([$_am_tar --version]) && break
|
||||||
|
done
|
||||||
|
am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
|
||||||
|
am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
|
||||||
|
am__untar="$_am_tar -xf -"
|
||||||
|
;;
|
||||||
|
plaintar)
|
||||||
|
# Must skip GNU tar: if it does not support --format= it doesn't create
|
||||||
|
# ustar tarball either.
|
||||||
|
(tar --version) >/dev/null 2>&1 && continue
|
||||||
|
am__tar='tar chf - "$$tardir"'
|
||||||
|
am__tar_='tar chf - "$tardir"'
|
||||||
|
am__untar='tar xf -'
|
||||||
|
;;
|
||||||
|
pax)
|
||||||
|
am__tar='pax -L -x $1 -w "$$tardir"'
|
||||||
|
am__tar_='pax -L -x $1 -w "$tardir"'
|
||||||
|
am__untar='pax -r'
|
||||||
|
;;
|
||||||
|
cpio)
|
||||||
|
am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
|
||||||
|
am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
|
||||||
|
am__untar='cpio -i -H $1 -d'
|
||||||
|
;;
|
||||||
|
none)
|
||||||
|
am__tar=false
|
||||||
|
am__tar_=false
|
||||||
|
am__untar=false
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# If the value was cached, stop now. We just wanted to have am__tar
|
||||||
|
# and am__untar set.
|
||||||
|
test -n "${am_cv_prog_tar_$1}" && break
|
||||||
|
|
||||||
|
# tar/untar a dummy directory, and stop if the command works
|
||||||
|
rm -rf conftest.dir
|
||||||
|
mkdir conftest.dir
|
||||||
|
echo GrepMe > conftest.dir/file
|
||||||
|
AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
|
||||||
|
rm -rf conftest.dir
|
||||||
|
if test -s conftest.tar; then
|
||||||
|
AM_RUN_LOG([$am__untar <conftest.tar])
|
||||||
|
grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
rm -rf conftest.dir
|
||||||
|
|
||||||
|
AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
|
||||||
|
AC_MSG_RESULT([$am_cv_prog_tar_$1])])
|
||||||
|
AC_SUBST([am__tar])
|
||||||
|
AC_SUBST([am__untar])
|
||||||
|
]) # _AM_PROG_TAR
|
||||||
|
|
||||||
|
m4_include([acinclude.m4])
|
142
vim_plugins_src/cscope-15.7a/compile
Normal file
142
vim_plugins_src/cscope-15.7a/compile
Normal file
|
@ -0,0 +1,142 @@
|
||||||
|
#! /bin/sh
|
||||||
|
# Wrapper for compilers which do not understand `-c -o'.
|
||||||
|
|
||||||
|
scriptversion=2005-05-14.22
|
||||||
|
|
||||||
|
# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||||
|
# Written by Tom Tromey <tromey@cygnus.com>.
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
# any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
|
||||||
|
# As a special exception to the GNU General Public License, if you
|
||||||
|
# distribute this file as part of a program that contains a
|
||||||
|
# configuration script generated by Autoconf, you may include it under
|
||||||
|
# the same distribution terms that you use for the rest of that program.
|
||||||
|
|
||||||
|
# This file is maintained in Automake, please report
|
||||||
|
# bugs to <bug-automake@gnu.org> or send patches to
|
||||||
|
# <automake-patches@gnu.org>.
|
||||||
|
|
||||||
|
case $1 in
|
||||||
|
'')
|
||||||
|
echo "$0: No command. Try \`$0 --help' for more information." 1>&2
|
||||||
|
exit 1;
|
||||||
|
;;
|
||||||
|
-h | --h*)
|
||||||
|
cat <<\EOF
|
||||||
|
Usage: compile [--help] [--version] PROGRAM [ARGS]
|
||||||
|
|
||||||
|
Wrapper for compilers which do not understand `-c -o'.
|
||||||
|
Remove `-o dest.o' from ARGS, run PROGRAM with the remaining
|
||||||
|
arguments, and rename the output as expected.
|
||||||
|
|
||||||
|
If you are trying to build a whole package this is not the
|
||||||
|
right script to run: please start by reading the file `INSTALL'.
|
||||||
|
|
||||||
|
Report bugs to <bug-automake@gnu.org>.
|
||||||
|
EOF
|
||||||
|
exit $?
|
||||||
|
;;
|
||||||
|
-v | --v*)
|
||||||
|
echo "compile $scriptversion"
|
||||||
|
exit $?
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
ofile=
|
||||||
|
cfile=
|
||||||
|
eat=
|
||||||
|
|
||||||
|
for arg
|
||||||
|
do
|
||||||
|
if test -n "$eat"; then
|
||||||
|
eat=
|
||||||
|
else
|
||||||
|
case $1 in
|
||||||
|
-o)
|
||||||
|
# configure might choose to run compile as `compile cc -o foo foo.c'.
|
||||||
|
# So we strip `-o arg' only if arg is an object.
|
||||||
|
eat=1
|
||||||
|
case $2 in
|
||||||
|
*.o | *.obj)
|
||||||
|
ofile=$2
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
set x "$@" -o "$2"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
*.c)
|
||||||
|
cfile=$1
|
||||||
|
set x "$@" "$1"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
set x "$@" "$1"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
if test -z "$ofile" || test -z "$cfile"; then
|
||||||
|
# If no `-o' option was seen then we might have been invoked from a
|
||||||
|
# pattern rule where we don't need one. That is ok -- this is a
|
||||||
|
# normal compilation that the losing compiler can handle. If no
|
||||||
|
# `.c' file was seen then we are probably linking. That is also
|
||||||
|
# ok.
|
||||||
|
exec "$@"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Name of file we expect compiler to create.
|
||||||
|
cofile=`echo "$cfile" | sed -e 's|^.*/||' -e 's/\.c$/.o/'`
|
||||||
|
|
||||||
|
# Create the lock directory.
|
||||||
|
# Note: use `[/.-]' here to ensure that we don't use the same name
|
||||||
|
# that we are using for the .o file. Also, base the name on the expected
|
||||||
|
# object file name, since that is what matters with a parallel build.
|
||||||
|
lockdir=`echo "$cofile" | sed -e 's|[/.-]|_|g'`.d
|
||||||
|
while true; do
|
||||||
|
if mkdir "$lockdir" >/dev/null 2>&1; then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
|
# FIXME: race condition here if user kills between mkdir and trap.
|
||||||
|
trap "rmdir '$lockdir'; exit 1" 1 2 15
|
||||||
|
|
||||||
|
# Run the compile.
|
||||||
|
"$@"
|
||||||
|
ret=$?
|
||||||
|
|
||||||
|
if test -f "$cofile"; then
|
||||||
|
mv "$cofile" "$ofile"
|
||||||
|
elif test -f "${cofile}bj"; then
|
||||||
|
mv "${cofile}bj" "$ofile"
|
||||||
|
fi
|
||||||
|
|
||||||
|
rmdir "$lockdir"
|
||||||
|
exit $ret
|
||||||
|
|
||||||
|
# Local Variables:
|
||||||
|
# mode: shell-script
|
||||||
|
# sh-indentation: 2
|
||||||
|
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||||
|
# time-stamp-start: "scriptversion="
|
||||||
|
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||||
|
# time-stamp-end: "$"
|
||||||
|
# End:
|
1463
vim_plugins_src/cscope-15.7a/config.guess
vendored
Normal file
1463
vim_plugins_src/cscope-15.7a/config.guess
vendored
Normal file
File diff suppressed because it is too large
Load diff
258
vim_plugins_src/cscope-15.7a/config.h.in
Normal file
258
vim_plugins_src/cscope-15.7a/config.h.in
Normal file
|
@ -0,0 +1,258 @@
|
||||||
|
/* config.h.in. Generated from configure.in by autoheader. */
|
||||||
|
|
||||||
|
/* We're using a BSD-flavoured Unix */
|
||||||
|
#undef BSD
|
||||||
|
|
||||||
|
/* Found some version of curses that we're going to use */
|
||||||
|
#undef HAS_CURSES
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `asprintf' function. */
|
||||||
|
#undef HAVE_ASPRINTF
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
|
||||||
|
*/
|
||||||
|
#undef HAVE_DIRENT_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <fcntl.h> header file. */
|
||||||
|
#undef HAVE_FCNTL_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `fixkeypad' function. */
|
||||||
|
#undef HAVE_FIXKEYPAD
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <floss.h> header file. */
|
||||||
|
#undef HAVE_FLOSS_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `getcwd' function. */
|
||||||
|
#undef HAVE_GETCWD
|
||||||
|
|
||||||
|
/* Define to 1 if the system has the type `intmax_t'. */
|
||||||
|
#undef HAVE_INTMAX_T
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||||
|
#undef HAVE_INTTYPES_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <io.h> header file. */
|
||||||
|
#undef HAVE_IO_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `regex' library (-lregex). */
|
||||||
|
#undef HAVE_LIBREGEX
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `localeconv' function. */
|
||||||
|
#undef HAVE_LOCALECONV
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <locale.h> header file. */
|
||||||
|
#undef HAVE_LOCALE_H
|
||||||
|
|
||||||
|
/* Define to 1 if the system has the type `long double'. */
|
||||||
|
#undef HAVE_LONG_DOUBLE
|
||||||
|
|
||||||
|
/* Define to 1 if the system has the type `long long int'. */
|
||||||
|
#undef HAVE_LONG_LONG_INT
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `lstat' function. */
|
||||||
|
#undef HAVE_LSTAT
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `memcpy' function. */
|
||||||
|
#undef HAVE_MEMCPY
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <memory.h> header file. */
|
||||||
|
#undef HAVE_MEMORY_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `memset' function. */
|
||||||
|
#undef HAVE_MEMSET
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
|
||||||
|
#undef HAVE_NDIR_H
|
||||||
|
|
||||||
|
/* Define to 1 if the system has the type `ptrdiff_t'. */
|
||||||
|
#undef HAVE_PTRDIFF_T
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `regcmp' function. */
|
||||||
|
#undef HAVE_REGCMP
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `regcomp' function. */
|
||||||
|
#undef HAVE_REGCOMP
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `setmode' function. */
|
||||||
|
#undef HAVE_SETMODE
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <signal.h> header file. */
|
||||||
|
#undef HAVE_SIGNAL_H
|
||||||
|
|
||||||
|
/* Define if we have sigsetjmp(). */
|
||||||
|
#undef HAVE_SIGSETJMP
|
||||||
|
|
||||||
|
/* Define to 1 if you have a C99 compliant `snprintf' function. */
|
||||||
|
#undef HAVE_SNPRINTF
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <stdarg.h> header file. */
|
||||||
|
#undef HAVE_STDARG_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <stddef.h> header file. */
|
||||||
|
#undef HAVE_STDDEF_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <stdint.h> header file. */
|
||||||
|
#undef HAVE_STDINT_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||||
|
#undef HAVE_STDLIB_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `strchr' function. */
|
||||||
|
#undef HAVE_STRCHR
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `strerror' function. */
|
||||||
|
#undef HAVE_STRERROR
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <strings.h> header file. */
|
||||||
|
#undef HAVE_STRINGS_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <string.h> header file. */
|
||||||
|
#undef HAVE_STRING_H
|
||||||
|
|
||||||
|
/* Define to 1 if `decimal_point' is member of `struct lconv'. */
|
||||||
|
#undef HAVE_STRUCT_LCONV_DECIMAL_POINT
|
||||||
|
|
||||||
|
/* Define to 1 if `thousands_sep' is member of `struct lconv'. */
|
||||||
|
#undef HAVE_STRUCT_LCONV_THOUSANDS_SEP
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
|
||||||
|
*/
|
||||||
|
#undef HAVE_SYS_DIR_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
|
||||||
|
*/
|
||||||
|
#undef HAVE_SYS_NDIR_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||||
|
#undef HAVE_SYS_STAT_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/termios.h> header file. */
|
||||||
|
#undef HAVE_SYS_TERMIOS_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||||
|
#undef HAVE_SYS_TYPES_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/window.h> header file. */
|
||||||
|
#undef HAVE_SYS_WINDOW_H
|
||||||
|
|
||||||
|
/* Define to 1 if the system has the type `uintmax_t'. */
|
||||||
|
#undef HAVE_UINTMAX_T
|
||||||
|
|
||||||
|
/* Define to 1 if the system has the type `uintptr_t'. */
|
||||||
|
#undef HAVE_UINTPTR_T
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <unistd.h> header file. */
|
||||||
|
#undef HAVE_UNISTD_H
|
||||||
|
|
||||||
|
/* Define to 1 if the system has the type `unsigned long long int'. */
|
||||||
|
#undef HAVE_UNSIGNED_LONG_LONG_INT
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <varargs.h> header file. */
|
||||||
|
#undef HAVE_VARARGS_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `vasprintf' function. */
|
||||||
|
#undef HAVE_VASPRINTF
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `va_copy' function or macro. */
|
||||||
|
#undef HAVE_VA_COPY
|
||||||
|
|
||||||
|
/* Define to 1 if you have a C99 compliant `vsnprintf' function. */
|
||||||
|
#undef HAVE_VSNPRINTF
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `_setmode' function. */
|
||||||
|
#undef HAVE__SETMODE
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `__va_copy' function or macro. */
|
||||||
|
#undef HAVE___VA_COPY
|
||||||
|
|
||||||
|
/* We're using some variant of Linux */
|
||||||
|
#undef Linux
|
||||||
|
|
||||||
|
/* Set to reflect version of ncurses: 0 = version 1.* 1 = version 1.9.9g 2 =
|
||||||
|
version 4.0/4.1 */
|
||||||
|
#undef NCURSES_970530
|
||||||
|
|
||||||
|
/* If your Curses does not have color define this one */
|
||||||
|
#undef NO_COLOR_CURSES
|
||||||
|
|
||||||
|
/* Name of package */
|
||||||
|
#undef PACKAGE
|
||||||
|
|
||||||
|
/* Define to the address where bug reports for this package should be sent. */
|
||||||
|
#undef PACKAGE_BUGREPORT
|
||||||
|
|
||||||
|
/* Define to the full name of this package. */
|
||||||
|
#undef PACKAGE_NAME
|
||||||
|
|
||||||
|
/* Define to the full name and version of this package. */
|
||||||
|
#undef PACKAGE_STRING
|
||||||
|
|
||||||
|
/* Define to the one symbol short name of this package. */
|
||||||
|
#undef PACKAGE_TARNAME
|
||||||
|
|
||||||
|
/* Define to the version of this package. */
|
||||||
|
#undef PACKAGE_VERSION
|
||||||
|
|
||||||
|
/* Define as the return type of signal handlers (`int' or `void'). */
|
||||||
|
#undef RETSIGTYPE
|
||||||
|
|
||||||
|
/* Define if you want to turn on SCO-specific code */
|
||||||
|
#undef SCO_FLAVOR
|
||||||
|
|
||||||
|
/* Define to 1 if you have the ANSI C header files. */
|
||||||
|
#undef STDC_HEADERS
|
||||||
|
|
||||||
|
/* Use Ncurses? */
|
||||||
|
#undef USE_NCURSES
|
||||||
|
|
||||||
|
/* Use SunOS SysV curses? */
|
||||||
|
#undef USE_SUNOS_CURSES
|
||||||
|
|
||||||
|
/* Use SystemV curses? */
|
||||||
|
#undef USE_SYSV_CURSES
|
||||||
|
|
||||||
|
/* Define this if the scanner is run through lex, not flex */
|
||||||
|
#undef USING_LEX
|
||||||
|
|
||||||
|
/* Version number of package */
|
||||||
|
#undef VERSION
|
||||||
|
|
||||||
|
/* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a
|
||||||
|
`char[]'. */
|
||||||
|
#undef YYTEXT_POINTER
|
||||||
|
|
||||||
|
/* Define to rpl_asprintf if the replacement function should be used. */
|
||||||
|
#undef asprintf
|
||||||
|
|
||||||
|
/* Define to empty if `const' does not conform to ANSI C. */
|
||||||
|
#undef const
|
||||||
|
|
||||||
|
/* Define to the widest signed integer type if <stdint.h> and <inttypes.h> do
|
||||||
|
not define. */
|
||||||
|
#undef intmax_t
|
||||||
|
|
||||||
|
/* Define to `int' if <sys/types.h> does not define. */
|
||||||
|
#undef mode_t
|
||||||
|
|
||||||
|
/* Define to `int' if <sys/types.h> does not define. */
|
||||||
|
#undef pid_t
|
||||||
|
|
||||||
|
/* Define to `unsigned int' if <sys/types.h> does not define. */
|
||||||
|
#undef size_t
|
||||||
|
|
||||||
|
/* Define to rpl_snprintf if the replacement function should be used. */
|
||||||
|
#undef snprintf
|
||||||
|
|
||||||
|
/* Define to the widest unsigned integer type if <stdint.h> and <inttypes.h>
|
||||||
|
do not define. */
|
||||||
|
#undef uintmax_t
|
||||||
|
|
||||||
|
/* Define to the type of an unsigned integer type wide enough to hold a
|
||||||
|
pointer, if such a type exists, and if the system does not define it. */
|
||||||
|
#undef uintptr_t
|
||||||
|
|
||||||
|
/* Define to rpl_vasprintf if the replacement function should be used. */
|
||||||
|
#undef vasprintf
|
||||||
|
|
||||||
|
/* Define to rpl_vsnprintf if the replacement function should be used. */
|
||||||
|
#undef vsnprintf
|
1579
vim_plugins_src/cscope-15.7a/config.sub
vendored
Normal file
1579
vim_plugins_src/cscope-15.7a/config.sub
vendored
Normal file
File diff suppressed because it is too large
Load diff
12492
vim_plugins_src/cscope-15.7a/configure
vendored
Normal file
12492
vim_plugins_src/cscope-15.7a/configure
vendored
Normal file
File diff suppressed because it is too large
Load diff
421
vim_plugins_src/cscope-15.7a/configure.in
Normal file
421
vim_plugins_src/cscope-15.7a/configure.in
Normal file
|
@ -0,0 +1,421 @@
|
||||||
|
dnl Process this file with autoconf to produce a configure script.
|
||||||
|
AC_INIT
|
||||||
|
AC_CONFIG_SRCDIR([src/crossref.c])
|
||||||
|
AM_INIT_AUTOMAKE(cscope, 15.7a)
|
||||||
|
AC_CONFIG_HEADERS([config.h:config.h.in])
|
||||||
|
AC_PREREQ(2.59)
|
||||||
|
AC_CANONICAL_HOST
|
||||||
|
|
||||||
|
dnl User specification of lexer
|
||||||
|
dnl AC_CHECK_LEXER
|
||||||
|
dnl User specification of yacc
|
||||||
|
dnl AC_CHECK_YACC
|
||||||
|
|
||||||
|
dnl Checks for programs.
|
||||||
|
AC_PROG_INSTALL
|
||||||
|
AC_PROG_CC
|
||||||
|
AC_EXEEXT
|
||||||
|
AM_PROG_LEX
|
||||||
|
AM_CONDITIONAL(USING_LEX, test "x$LEX" = "xlex")
|
||||||
|
if test "x$LEX" = "xlex" ; then AC_DEFINE(USING_LEX, 1,
|
||||||
|
[Define this if the scanner is run through lex, not flex])
|
||||||
|
fi
|
||||||
|
AC_PROG_YACC
|
||||||
|
|
||||||
|
dnl === BEGIN CURSES CHECK
|
||||||
|
dnl Curses detection: Munged from Midnight Commander's configure.in
|
||||||
|
dnl
|
||||||
|
dnl What it does:
|
||||||
|
dnl =============
|
||||||
|
dnl
|
||||||
|
dnl - Determine which version of curses is installed on your system
|
||||||
|
dnl and set the -I/-L/-l compiler entries and add a few preprocessor
|
||||||
|
dnl symbols
|
||||||
|
dnl - Do an AC_SUBST on the CURSES_INCLUDEDIR and CURSES_LIBS so that
|
||||||
|
dnl @CURSES_INCLUDEDIR@ and @CURSES_LIBS@ will be available in
|
||||||
|
dnl Makefile.in's
|
||||||
|
dnl - Modify the following configure variables (these are the only
|
||||||
|
dnl curses.m4 variables you can access from within configure.in)
|
||||||
|
dnl CURSES_INCLUDEDIR - contains -I's and possibly -DRENAMED_CURSES if
|
||||||
|
dnl an ncurses.h that's been renamed to curses.h
|
||||||
|
dnl is found.
|
||||||
|
dnl CURSES_LIBS - sets -L and -l's appropriately
|
||||||
|
dnl CFLAGS - if --with-sco, add -D_SVID3
|
||||||
|
dnl has_curses - exports result of tests to rest of configure
|
||||||
|
dnl
|
||||||
|
dnl Usage:
|
||||||
|
dnl ======
|
||||||
|
dnl 1) Add lines indicated below to acconfig.h
|
||||||
|
dnl 2) call AC_CHECK_CURSES after AC_PROG_CC in your configure.in
|
||||||
|
dnl 3) Instead of #include <curses.h> you should use the following to
|
||||||
|
dnl properly locate ncurses or curses header file
|
||||||
|
dnl
|
||||||
|
dnl #if defined(USE_NCURSES) && !defined(RENAMED_NCURSES)
|
||||||
|
dnl #include <ncurses.h>
|
||||||
|
dnl #else
|
||||||
|
dnl #include <curses.h>
|
||||||
|
dnl #endif
|
||||||
|
dnl
|
||||||
|
dnl 4) Make sure to add @CURSES_INCLUDEDIR@ to your preprocessor flags
|
||||||
|
dnl 5) Make sure to add @CURSES_LIBS@ to your linker flags or LIBS
|
||||||
|
dnl
|
||||||
|
dnl Notes with automake:
|
||||||
|
dnl - call AM_CONDITIONAL(HAS_CURSES, test "$has_curses" = true) from
|
||||||
|
dnl configure.in
|
||||||
|
dnl - your Makefile.am can look something like this
|
||||||
|
dnl -----------------------------------------------
|
||||||
|
dnl INCLUDES= blah blah blah $(CURSES_INCLUDEDIR)
|
||||||
|
dnl if HAS_CURSES
|
||||||
|
dnl CURSES_TARGETS=name_of_curses_prog
|
||||||
|
dnl endif
|
||||||
|
dnl bin_PROGRAMS = other_programs $(CURSES_TARGETS)
|
||||||
|
dnl other_programs_SOURCES = blah blah blah
|
||||||
|
dnl name_of_curses_prog_SOURCES = blah blah blah
|
||||||
|
dnl other_programs_LDADD = blah
|
||||||
|
dnl name_of_curses_prog_LDADD = blah $(CURSES_LIBS)
|
||||||
|
dnl -----------------------------------------------
|
||||||
|
dnl
|
||||||
|
dnl
|
||||||
|
dnl The following lines should be added to acconfig.h:
|
||||||
|
dnl ==================================================
|
||||||
|
dnl
|
||||||
|
dnl /*=== Curses version detection defines ===*/
|
||||||
|
dnl /* Found some version of curses that we're going to use */
|
||||||
|
dnl #undef HAS_CURSES
|
||||||
|
dnl
|
||||||
|
dnl /* Use SunOS SysV curses? */
|
||||||
|
dnl #undef USE_SUNOS_CURSES
|
||||||
|
dnl
|
||||||
|
dnl /* Use old BSD curses - not used right now */
|
||||||
|
dnl #undef USE_BSD_CURSES
|
||||||
|
dnl
|
||||||
|
dnl /* Use SystemV curses? */
|
||||||
|
dnl #undef USE_SYSV_CURSES
|
||||||
|
dnl
|
||||||
|
dnl /* Use Ncurses? */
|
||||||
|
dnl #undef USE_NCURSES
|
||||||
|
dnl
|
||||||
|
dnl /* If you Curses does not have color define this one */
|
||||||
|
dnl #undef NO_COLOR_CURSES
|
||||||
|
dnl
|
||||||
|
dnl /* Define if you want to turn on SCO-specific code */
|
||||||
|
dnl #undef SCO_FLAVOR
|
||||||
|
dnl
|
||||||
|
dnl /* Set to reflect version of ncurses *
|
||||||
|
dnl * 0 = version 1.*
|
||||||
|
dnl * 1 = version 1.9.9g
|
||||||
|
dnl * 2 = version 4.0/4.1 */
|
||||||
|
dnl #undef NCURSES_970530
|
||||||
|
dnl
|
||||||
|
dnl /*=== End new stuff for acconfig.h ===*/
|
||||||
|
dnl
|
||||||
|
|
||||||
|
|
||||||
|
AC_DEFUN([AC_CHECK_CURSES],[
|
||||||
|
search_ncurses=true
|
||||||
|
screen_manager=""
|
||||||
|
has_curses=false
|
||||||
|
|
||||||
|
CFLAGS=${CFLAGS--O}
|
||||||
|
|
||||||
|
AC_SUBST(CURSES_LIBS)
|
||||||
|
AC_SUBST(CURSES_INCLUDEDIR)
|
||||||
|
|
||||||
|
AC_ARG_WITH(sco,
|
||||||
|
[ --with-sco Use this to turn on SCO-specific code],[
|
||||||
|
if test x$withval = xyes; then
|
||||||
|
AC_DEFINE(SCO_FLAVOR, 1, [Define if you want to turn on SCO-specific code])
|
||||||
|
CFLAGS="$CFLAGS -D_SVID3"
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
|
||||||
|
AC_ARG_WITH(sunos-curses,
|
||||||
|
[ --with-sunos-curses Used to force SunOS 4.x curses],[
|
||||||
|
if test x$withval = xyes; then
|
||||||
|
AC_USE_SUNOS_CURSES
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
|
||||||
|
AC_ARG_WITH(osf1-curses,
|
||||||
|
[ --with-osf1-curses Used to force OSF/1 curses],[
|
||||||
|
if test x$withval = xyes; then
|
||||||
|
AC_USE_OSF1_CURSES
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
|
||||||
|
AC_ARG_WITH(vcurses,
|
||||||
|
[ --with-vcurses[=incdir] Used to force SysV curses],
|
||||||
|
if test x$withval != xyes; then
|
||||||
|
CURSES_INCLUDEDIR="-I$withval"
|
||||||
|
fi
|
||||||
|
AC_USE_SYSV_CURSES
|
||||||
|
)
|
||||||
|
|
||||||
|
AC_ARG_WITH(ncurses,
|
||||||
|
[ --with-ncurses[=dir] Compile with ncurses/locate base dir],
|
||||||
|
if test x$withval = xno ; then
|
||||||
|
search_ncurses=false
|
||||||
|
elif test x$withval != xyes ; then
|
||||||
|
CURSES_LIBS="$LIBS -L$withval/lib -lncurses"
|
||||||
|
CURSES_INCLUDEDIR="-I$withval/include"
|
||||||
|
search_ncurses=false
|
||||||
|
screen_manager="ncurses"
|
||||||
|
AC_DEFINE(USE_NCURSES, 1, [Use Ncurses?])
|
||||||
|
AC_DEFINE(HAS_CURSES, 1, [Found some version of curses that we're going to use])
|
||||||
|
has_curses=true
|
||||||
|
fi
|
||||||
|
)
|
||||||
|
|
||||||
|
if $search_ncurses
|
||||||
|
then
|
||||||
|
AC_SEARCH_NCURSES()
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
])
|
||||||
|
|
||||||
|
|
||||||
|
AC_DEFUN([AC_USE_SUNOS_CURSES], [
|
||||||
|
search_ncurses=false
|
||||||
|
screen_manager="SunOS 4.x /usr/5include curses"
|
||||||
|
AC_MSG_RESULT(Using SunOS 4.x /usr/5include curses)
|
||||||
|
AC_DEFINE(USE_SUNOS_CURSES, 1, [Use SunOS SysV curses?])
|
||||||
|
AC_DEFINE(HAS_CURSES)
|
||||||
|
has_curses=true
|
||||||
|
AC_DEFINE(NO_COLOR_CURSES, 1, [If your Curses does not have color define this one])
|
||||||
|
AC_DEFINE(USE_SYSV_CURSES, 1, [Use SystemV curses?])
|
||||||
|
CURSES_INCLUDEDIR="-I/usr/5include"
|
||||||
|
CURSES_LIBS="/usr/5lib/libcurses.a /usr/5lib/libtermcap.a"
|
||||||
|
AC_MSG_RESULT(Please note that some screen refreshs may fail)
|
||||||
|
])
|
||||||
|
|
||||||
|
AC_DEFUN([AC_USE_OSF1_CURSES], [
|
||||||
|
AC_MSG_RESULT(Using OSF1 curses)
|
||||||
|
search_ncurses=false
|
||||||
|
screen_manager="OSF1 curses"
|
||||||
|
AC_DEFINE(HAS_CURSES)
|
||||||
|
has_curses=true
|
||||||
|
AC_DEFINE(NO_COLOR_CURSES)
|
||||||
|
AC_DEFINE(USE_SYSV_CURSES)
|
||||||
|
CURSES_LIBS="-lcurses"
|
||||||
|
])
|
||||||
|
|
||||||
|
AC_DEFUN([AC_USE_SYSV_CURSES], [
|
||||||
|
AC_MSG_RESULT(Using SysV curses)
|
||||||
|
AC_DEFINE(HAS_CURSES)
|
||||||
|
has_curses=true
|
||||||
|
AC_DEFINE(USE_SYSV_CURSES)
|
||||||
|
search_ncurses=false
|
||||||
|
screen_manager="SysV/curses"
|
||||||
|
CURSES_LIBS="-lcurses"
|
||||||
|
])
|
||||||
|
|
||||||
|
dnl AC_ARG_WITH(bsd-curses,
|
||||||
|
dnl [--with-bsd-curses Used to compile with bsd curses, not very fancy],
|
||||||
|
dnl search_ncurses=false
|
||||||
|
dnl screen_manager="Ultrix/cursesX"
|
||||||
|
dnl if test $system = ULTRIX
|
||||||
|
dnl then
|
||||||
|
dnl THIS_CURSES=cursesX
|
||||||
|
dnl else
|
||||||
|
dnl THIS_CURSES=curses
|
||||||
|
dnl fi
|
||||||
|
dnl
|
||||||
|
dnl CURSES_LIBS="-l$THIS_CURSES -ltermcap"
|
||||||
|
dnl AC_DEFINE(HAS_CURSES)
|
||||||
|
dnl has_curses=true
|
||||||
|
dnl AC_DEFINE(USE_BSD_CURSES)
|
||||||
|
dnl AC_MSG_RESULT(Please note that some screen refreshs may fail)
|
||||||
|
dnl AC_MSG_WARN([Use of the bsdcurses extension has some])
|
||||||
|
dnl AC_MSG_WARN([display/input problems.])
|
||||||
|
dnl AC_MSG_WARN([Reconsider using xcurses])
|
||||||
|
dnl)
|
||||||
|
|
||||||
|
|
||||||
|
dnl
|
||||||
|
dnl Parameters: directory filename cureses_LIBS curses_INCLUDEDIR nicename
|
||||||
|
dnl
|
||||||
|
AC_DEFUN([AC_NCURSES], [
|
||||||
|
if $search_ncurses
|
||||||
|
then
|
||||||
|
if test -f $1/$2
|
||||||
|
then
|
||||||
|
AC_MSG_RESULT(Found ncurses on $1/$2)
|
||||||
|
CURSES_LIBS="$3"
|
||||||
|
CURSES_INCLUDEDIR="$4"
|
||||||
|
search_ncurses=false
|
||||||
|
screen_manager=$5
|
||||||
|
AC_DEFINE(HAS_CURSES)
|
||||||
|
has_curses=true
|
||||||
|
AC_DEFINE(USE_NCURSES)
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
|
||||||
|
AC_DEFUN([AC_SEARCH_NCURSES], [
|
||||||
|
AS_MESSAGE(checking "location of ncurses.h file"...)
|
||||||
|
|
||||||
|
AC_NCURSES(/usr/include, ncurses.h, -lncurses,, "ncurses on /usr/include")
|
||||||
|
AC_NCURSES(/usr/include/ncurses, ncurses.h, -lncurses, -I/usr/include/ncurses, "ncurses on /usr/include/ncurses")
|
||||||
|
AC_NCURSES(/usr/local/include, ncurses.h, -L/usr/local/lib -lncurses, -I/usr/local/include, "ncurses on /usr/local")
|
||||||
|
AC_NCURSES(/usr/local/include/ncurses, ncurses.h, -L/usr/local/lib -L/usr/local/lib/ncurses -lncurses, -I/usr/local/include/ncurses, "ncurses on /usr/local/include/ncurses")
|
||||||
|
|
||||||
|
AC_NCURSES(/usr/local/include/ncurses, curses.h, -L/usr/local/lib -lncurses, -I/usr/local/include/ncurses -DRENAMED_NCURSES, "renamed ncurses on /usr/local/.../ncurses")
|
||||||
|
|
||||||
|
AC_NCURSES(/usr/include/ncurses, curses.h, -lncurses, -I/usr/include/ncurses -DRENAMED_NCURSES, "renamed ncurses on /usr/include/ncurses")
|
||||||
|
|
||||||
|
dnl
|
||||||
|
dnl We couldn't find ncurses, try SysV curses
|
||||||
|
dnl
|
||||||
|
if $search_ncurses
|
||||||
|
then
|
||||||
|
AC_EGREP_HEADER(init_color, curses.h,
|
||||||
|
AC_USE_SYSV_CURSES)
|
||||||
|
AC_EGREP_CPP(USE_NCURSES,[
|
||||||
|
#include <curses.h>
|
||||||
|
#ifdef __NCURSES_H
|
||||||
|
#undef USE_NCURSES
|
||||||
|
USE_NCURSES
|
||||||
|
#endif
|
||||||
|
],[
|
||||||
|
CURSES_INCLUDEDIR="$CURSES_INCLUDEDIR -DRENAMED_NCURSES"
|
||||||
|
AC_DEFINE(HAS_CURSES)
|
||||||
|
has_curses=true
|
||||||
|
AC_DEFINE(USE_NCURSES)
|
||||||
|
search_ncurses=false
|
||||||
|
screen_manager="ncurses installed as curses"
|
||||||
|
])
|
||||||
|
fi
|
||||||
|
|
||||||
|
dnl
|
||||||
|
dnl Try SunOS 4.x /usr/5{lib,include} ncurses
|
||||||
|
dnl The flags USE_SUNOS_CURSES, USE_BSD_CURSES and BUGGY_CURSES
|
||||||
|
dnl should be replaced by a more fine grained selection routine
|
||||||
|
dnl
|
||||||
|
if $search_ncurses
|
||||||
|
then
|
||||||
|
if test -f /usr/5include/curses.h
|
||||||
|
then
|
||||||
|
AC_USE_SUNOS_CURSES
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
# check for ncurses version, to properly ifdef mouse-fix
|
||||||
|
AC_MSG_CHECKING(for ncurses version)
|
||||||
|
ncurses_version=unknown
|
||||||
|
cat > conftest.$ac_ext <<EOF
|
||||||
|
[#]line __oline__ "configure"
|
||||||
|
#include "confdefs.h"
|
||||||
|
#ifdef RENAMED_NCURSES
|
||||||
|
#include <curses.h>
|
||||||
|
#else
|
||||||
|
#include <ncurses.h>
|
||||||
|
#endif
|
||||||
|
#undef VERSION
|
||||||
|
VERSION:NCURSES_VERSION
|
||||||
|
EOF
|
||||||
|
if (eval "$ac_cpp conftest.$ac_ext") 2>&AS_MESSAGE_LOG_FD() |
|
||||||
|
egrep "VERSION:" >conftest.out 2>&1; then
|
||||||
|
changequote(,)dnl
|
||||||
|
ncurses_version=`cat conftest.out|sed -e 's/^[^"]*"//' -e 's/".*//'`
|
||||||
|
changequote([,])dnl
|
||||||
|
fi
|
||||||
|
rm -rf conftest*
|
||||||
|
AC_MSG_RESULT($ncurses_version)
|
||||||
|
case "$ncurses_version" in
|
||||||
|
changequote(,)dnl
|
||||||
|
4.[01])
|
||||||
|
changequote([,])dnl
|
||||||
|
AC_DEFINE(NCURSES_970530,2,
|
||||||
|
[Set to reflect version of ncurses:
|
||||||
|
0 = version 1.*
|
||||||
|
1 = version 1.9.9g
|
||||||
|
2 = version 4.0/4.1])
|
||||||
|
;;
|
||||||
|
1.9.9g)
|
||||||
|
AC_DEFINE(NCURSES_970530,1)
|
||||||
|
;;
|
||||||
|
1*)
|
||||||
|
AC_DEFINE(NCURSES_970530,0)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
dnl === END CURSES CHECK
|
||||||
|
|
||||||
|
AC_CHECK_CURSES
|
||||||
|
AM_CONDITIONAL(HAS_CURSES, test "$has_curses" = true)
|
||||||
|
|
||||||
|
dnl Checks for libraries.
|
||||||
|
dnl Replace `main' with a function in -lcurses:
|
||||||
|
dnl AC_CHECK_LIB(curses, main)
|
||||||
|
|
||||||
|
AC_CHECK_HEADER(regex.h, [], [
|
||||||
|
AC_MSG_ERROR([necessary header <regex.h> not found])
|
||||||
|
])
|
||||||
|
|
||||||
|
dnl Cygwin is a bit peculiar: it has the regcomp() functions, but in a
|
||||||
|
dnl separate library, so we have to check for that:
|
||||||
|
AC_CHECK_LIB(regex, regcomp)
|
||||||
|
|
||||||
|
dnl Check for a GNOME installation
|
||||||
|
|
||||||
|
AC_DEFUN([AC_CHECK_GNOME],[
|
||||||
|
has_gnome=false
|
||||||
|
AC_CHECK_PROG(gnome1, gnome-config, true)
|
||||||
|
AC_CHECK_PROG(gnome2, pkg-config, true)
|
||||||
|
|
||||||
|
if test x$gnome1 = xtrue; then
|
||||||
|
has_gnome=true
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test x$gnome2 = xtrue; then
|
||||||
|
has_gnome=true
|
||||||
|
fi
|
||||||
|
|
||||||
|
AM_CONDITIONAL(USING_GNOME2, pkg-config --exists gtk+-2.0)
|
||||||
|
AM_CONDITIONAL(HAS_GNOME, test "$has_gnome" = true)
|
||||||
|
AM_CONDITIONAL(GNOME_LINUX, test "$host_os" = Linux)
|
||||||
|
])
|
||||||
|
|
||||||
|
AC_CHECK_GNOME
|
||||||
|
dnl Checks for header files.
|
||||||
|
AC_HEADER_DIRENT
|
||||||
|
AC_HEADER_STDC
|
||||||
|
AC_CHECK_HEADERS(fcntl.h sys/window.h sys/termios.h unistd.h signal.h floss.h io.h)
|
||||||
|
|
||||||
|
dnl Checks for typedefs, structures, and compiler characteristics.
|
||||||
|
AC_C_CONST
|
||||||
|
AC_TYPE_MODE_T
|
||||||
|
AC_TYPE_PID_T
|
||||||
|
AC_TYPE_SIZE_T
|
||||||
|
AC_CHECK_TYPE(sighandler_t,[],[],[
|
||||||
|
#ifdef HAVE_SIGNAL_H
|
||||||
|
# include <signal.h>
|
||||||
|
#endif])
|
||||||
|
dnl This test was ripped from gnuplot's configure.in:
|
||||||
|
AC_MSG_CHECKING(for sigsetjmp)
|
||||||
|
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <setjmp.h>]], [[jmp_buf env; sigsetjmp(env, 1);]])],[AC_MSG_RESULT(yes)
|
||||||
|
AC_DEFINE(HAVE_SIGSETJMP,1,
|
||||||
|
[ Define if we have sigsetjmp(). ])],[AC_MSG_RESULT(no)])
|
||||||
|
|
||||||
|
dnl Checks for library functions.
|
||||||
|
AC_TYPE_SIGNAL
|
||||||
|
AC_CHECK_FUNCS(strchr memcpy memset setmode _setmode)
|
||||||
|
AC_CHECK_FUNCS(getcwd regcmp regcomp strerror lstat)
|
||||||
|
AC_CHECK_FUNCS(fixkeypad)
|
||||||
|
HW_FUNC_SNPRINTF
|
||||||
|
HW_FUNC_VSNPRINTF
|
||||||
|
HW_FUNC_ASPRINTF
|
||||||
|
HW_FUNC_VASPRINTF
|
||||||
|
|
||||||
|
case "$host_os" in
|
||||||
|
linux*)
|
||||||
|
AC_DEFINE(Linux, 1, [We're using some variant of Linux])
|
||||||
|
;;
|
||||||
|
netbsd*|freebsd*|darwin*)
|
||||||
|
AC_DEFINE(BSD, 1, [We're using a BSD-flavoured Unix])
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
AC_CONFIG_FILES([Makefile doc/Makefile src/Makefile contrib/Makefile])
|
||||||
|
AC_OUTPUT
|
6
vim_plugins_src/cscope-15.7a/contrib/Makefile.am
Normal file
6
vim_plugins_src/cscope-15.7a/contrib/Makefile.am
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
## Process this file with automake to produce Makefile.in
|
||||||
|
|
||||||
|
bin_SCRIPTS = ocs
|
||||||
|
|
||||||
|
EXTRA_DIST = ocs README xcscope webcscope
|
||||||
|
|
338
vim_plugins_src/cscope-15.7a/contrib/Makefile.in
Normal file
338
vim_plugins_src/cscope-15.7a/contrib/Makefile.in
Normal file
|
@ -0,0 +1,338 @@
|
||||||
|
# Makefile.in generated by automake 1.9.6 from Makefile.am.
|
||||||
|
# @configure_input@
|
||||||
|
|
||||||
|
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||||
|
# 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||||
|
# This Makefile.in is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||||
|
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||||
|
# PARTICULAR PURPOSE.
|
||||||
|
|
||||||
|
@SET_MAKE@
|
||||||
|
|
||||||
|
srcdir = @srcdir@
|
||||||
|
top_srcdir = @top_srcdir@
|
||||||
|
VPATH = @srcdir@
|
||||||
|
pkgdatadir = $(datadir)/@PACKAGE@
|
||||||
|
pkglibdir = $(libdir)/@PACKAGE@
|
||||||
|
pkgincludedir = $(includedir)/@PACKAGE@
|
||||||
|
top_builddir = ..
|
||||||
|
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||||
|
INSTALL = @INSTALL@
|
||||||
|
install_sh_DATA = $(install_sh) -c -m 644
|
||||||
|
install_sh_PROGRAM = $(install_sh) -c
|
||||||
|
install_sh_SCRIPT = $(install_sh) -c
|
||||||
|
INSTALL_HEADER = $(INSTALL_DATA)
|
||||||
|
transform = $(program_transform_name)
|
||||||
|
NORMAL_INSTALL = :
|
||||||
|
PRE_INSTALL = :
|
||||||
|
POST_INSTALL = :
|
||||||
|
NORMAL_UNINSTALL = :
|
||||||
|
PRE_UNINSTALL = :
|
||||||
|
POST_UNINSTALL = :
|
||||||
|
build_triplet = @build@
|
||||||
|
host_triplet = @host@
|
||||||
|
LIBOBJDIR =
|
||||||
|
subdir = contrib
|
||||||
|
DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
|
||||||
|
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||||
|
am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
|
||||||
|
$(top_srcdir)/configure.in
|
||||||
|
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||||
|
$(ACLOCAL_M4)
|
||||||
|
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
||||||
|
CONFIG_HEADER = $(top_builddir)/config.h
|
||||||
|
CONFIG_CLEAN_FILES =
|
||||||
|
am__installdirs = "$(DESTDIR)$(bindir)"
|
||||||
|
binSCRIPT_INSTALL = $(INSTALL_SCRIPT)
|
||||||
|
SCRIPTS = $(bin_SCRIPTS)
|
||||||
|
SOURCES =
|
||||||
|
DIST_SOURCES =
|
||||||
|
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||||
|
ACLOCAL = @ACLOCAL@
|
||||||
|
AMDEP_FALSE = @AMDEP_FALSE@
|
||||||
|
AMDEP_TRUE = @AMDEP_TRUE@
|
||||||
|
AMTAR = @AMTAR@
|
||||||
|
AUTOCONF = @AUTOCONF@
|
||||||
|
AUTOHEADER = @AUTOHEADER@
|
||||||
|
AUTOMAKE = @AUTOMAKE@
|
||||||
|
AWK = @AWK@
|
||||||
|
CC = @CC@
|
||||||
|
CCDEPMODE = @CCDEPMODE@
|
||||||
|
CFLAGS = @CFLAGS@
|
||||||
|
CPP = @CPP@
|
||||||
|
CPPFLAGS = @CPPFLAGS@
|
||||||
|
CURSES_INCLUDEDIR = @CURSES_INCLUDEDIR@
|
||||||
|
CURSES_LIBS = @CURSES_LIBS@
|
||||||
|
CYGPATH_W = @CYGPATH_W@
|
||||||
|
DEFS = @DEFS@
|
||||||
|
DEPDIR = @DEPDIR@
|
||||||
|
ECHO_C = @ECHO_C@
|
||||||
|
ECHO_N = @ECHO_N@
|
||||||
|
ECHO_T = @ECHO_T@
|
||||||
|
EGREP = @EGREP@
|
||||||
|
EXEEXT = @EXEEXT@
|
||||||
|
GNOME_LINUX_FALSE = @GNOME_LINUX_FALSE@
|
||||||
|
GNOME_LINUX_TRUE = @GNOME_LINUX_TRUE@
|
||||||
|
GREP = @GREP@
|
||||||
|
HAS_CURSES_FALSE = @HAS_CURSES_FALSE@
|
||||||
|
HAS_CURSES_TRUE = @HAS_CURSES_TRUE@
|
||||||
|
HAS_GNOME_FALSE = @HAS_GNOME_FALSE@
|
||||||
|
HAS_GNOME_TRUE = @HAS_GNOME_TRUE@
|
||||||
|
INSTALL_DATA = @INSTALL_DATA@
|
||||||
|
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||||
|
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||||
|
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||||
|
LDFLAGS = @LDFLAGS@
|
||||||
|
LEX = @LEX@
|
||||||
|
LEXLIB = @LEXLIB@
|
||||||
|
LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
|
||||||
|
LIBOBJS = @LIBOBJS@
|
||||||
|
LIBS = @LIBS@
|
||||||
|
LTLIBOBJS = @LTLIBOBJS@
|
||||||
|
MAKEINFO = @MAKEINFO@
|
||||||
|
OBJEXT = @OBJEXT@
|
||||||
|
PACKAGE = @PACKAGE@
|
||||||
|
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||||
|
PACKAGE_NAME = @PACKAGE_NAME@
|
||||||
|
PACKAGE_STRING = @PACKAGE_STRING@
|
||||||
|
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||||
|
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||||
|
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||||
|
SET_MAKE = @SET_MAKE@
|
||||||
|
SHELL = @SHELL@
|
||||||
|
STRIP = @STRIP@
|
||||||
|
USING_GNOME2_FALSE = @USING_GNOME2_FALSE@
|
||||||
|
USING_GNOME2_TRUE = @USING_GNOME2_TRUE@
|
||||||
|
USING_LEX_FALSE = @USING_LEX_FALSE@
|
||||||
|
USING_LEX_TRUE = @USING_LEX_TRUE@
|
||||||
|
VERSION = @VERSION@
|
||||||
|
YACC = @YACC@
|
||||||
|
YFLAGS = @YFLAGS@
|
||||||
|
ac_ct_CC = @ac_ct_CC@
|
||||||
|
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
||||||
|
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
||||||
|
am__include = @am__include@
|
||||||
|
am__leading_dot = @am__leading_dot@
|
||||||
|
am__quote = @am__quote@
|
||||||
|
am__tar = @am__tar@
|
||||||
|
am__untar = @am__untar@
|
||||||
|
bindir = @bindir@
|
||||||
|
build = @build@
|
||||||
|
build_alias = @build_alias@
|
||||||
|
build_cpu = @build_cpu@
|
||||||
|
build_os = @build_os@
|
||||||
|
build_vendor = @build_vendor@
|
||||||
|
datadir = @datadir@
|
||||||
|
datarootdir = @datarootdir@
|
||||||
|
docdir = @docdir@
|
||||||
|
dvidir = @dvidir@
|
||||||
|
exec_prefix = @exec_prefix@
|
||||||
|
gnome1 = @gnome1@
|
||||||
|
gnome2 = @gnome2@
|
||||||
|
host = @host@
|
||||||
|
host_alias = @host_alias@
|
||||||
|
host_cpu = @host_cpu@
|
||||||
|
host_os = @host_os@
|
||||||
|
host_vendor = @host_vendor@
|
||||||
|
htmldir = @htmldir@
|
||||||
|
includedir = @includedir@
|
||||||
|
infodir = @infodir@
|
||||||
|
install_sh = @install_sh@
|
||||||
|
libdir = @libdir@
|
||||||
|
libexecdir = @libexecdir@
|
||||||
|
localedir = @localedir@
|
||||||
|
localstatedir = @localstatedir@
|
||||||
|
mandir = @mandir@
|
||||||
|
mkdir_p = @mkdir_p@
|
||||||
|
oldincludedir = @oldincludedir@
|
||||||
|
pdfdir = @pdfdir@
|
||||||
|
prefix = @prefix@
|
||||||
|
program_transform_name = @program_transform_name@
|
||||||
|
psdir = @psdir@
|
||||||
|
sbindir = @sbindir@
|
||||||
|
sharedstatedir = @sharedstatedir@
|
||||||
|
sysconfdir = @sysconfdir@
|
||||||
|
target_alias = @target_alias@
|
||||||
|
bin_SCRIPTS = ocs
|
||||||
|
EXTRA_DIST = ocs README xcscope webcscope
|
||||||
|
all: all-am
|
||||||
|
|
||||||
|
.SUFFIXES:
|
||||||
|
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||||
|
@for dep in $?; do \
|
||||||
|
case '$(am__configure_deps)' in \
|
||||||
|
*$$dep*) \
|
||||||
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
|
||||||
|
&& exit 0; \
|
||||||
|
exit 1;; \
|
||||||
|
esac; \
|
||||||
|
done; \
|
||||||
|
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu contrib/Makefile'; \
|
||||||
|
cd $(top_srcdir) && \
|
||||||
|
$(AUTOMAKE) --gnu contrib/Makefile
|
||||||
|
.PRECIOUS: Makefile
|
||||||
|
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||||
|
@case '$?' in \
|
||||||
|
*config.status*) \
|
||||||
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||||
|
*) \
|
||||||
|
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||||
|
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||||
|
esac;
|
||||||
|
|
||||||
|
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||||
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||||
|
|
||||||
|
$(top_srcdir)/configure: $(am__configure_deps)
|
||||||
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||||
|
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||||
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||||
|
install-binSCRIPTS: $(bin_SCRIPTS)
|
||||||
|
@$(NORMAL_INSTALL)
|
||||||
|
test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
|
||||||
|
@list='$(bin_SCRIPTS)'; for p in $$list; do \
|
||||||
|
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||||
|
if test -f $$d$$p; then \
|
||||||
|
f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
|
||||||
|
echo " $(binSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(bindir)/$$f'"; \
|
||||||
|
$(binSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(bindir)/$$f"; \
|
||||||
|
else :; fi; \
|
||||||
|
done
|
||||||
|
|
||||||
|
uninstall-binSCRIPTS:
|
||||||
|
@$(NORMAL_UNINSTALL)
|
||||||
|
@list='$(bin_SCRIPTS)'; for p in $$list; do \
|
||||||
|
f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
|
||||||
|
echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
|
||||||
|
rm -f "$(DESTDIR)$(bindir)/$$f"; \
|
||||||
|
done
|
||||||
|
uninstall-info-am:
|
||||||
|
tags: TAGS
|
||||||
|
TAGS:
|
||||||
|
|
||||||
|
ctags: CTAGS
|
||||||
|
CTAGS:
|
||||||
|
|
||||||
|
|
||||||
|
distdir: $(DISTFILES)
|
||||||
|
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
|
||||||
|
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
|
||||||
|
list='$(DISTFILES)'; for file in $$list; do \
|
||||||
|
case $$file in \
|
||||||
|
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
|
||||||
|
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
|
||||||
|
esac; \
|
||||||
|
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||||
|
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||||
|
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
|
||||||
|
dir="/$$dir"; \
|
||||||
|
$(mkdir_p) "$(distdir)$$dir"; \
|
||||||
|
else \
|
||||||
|
dir=''; \
|
||||||
|
fi; \
|
||||||
|
if test -d $$d/$$file; then \
|
||||||
|
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||||
|
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||||
|
fi; \
|
||||||
|
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
|
||||||
|
else \
|
||||||
|
test -f $(distdir)/$$file \
|
||||||
|
|| cp -p $$d/$$file $(distdir)/$$file \
|
||||||
|
|| exit 1; \
|
||||||
|
fi; \
|
||||||
|
done
|
||||||
|
check-am: all-am
|
||||||
|
check: check-am
|
||||||
|
all-am: Makefile $(SCRIPTS)
|
||||||
|
installdirs:
|
||||||
|
for dir in "$(DESTDIR)$(bindir)"; do \
|
||||||
|
test -z "$$dir" || $(mkdir_p) "$$dir"; \
|
||||||
|
done
|
||||||
|
install: install-am
|
||||||
|
install-exec: install-exec-am
|
||||||
|
install-data: install-data-am
|
||||||
|
uninstall: uninstall-am
|
||||||
|
|
||||||
|
install-am: all-am
|
||||||
|
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||||
|
|
||||||
|
installcheck: installcheck-am
|
||||||
|
install-strip:
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||||
|
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||||
|
`test -z '$(STRIP)' || \
|
||||||
|
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||||
|
mostlyclean-generic:
|
||||||
|
|
||||||
|
clean-generic:
|
||||||
|
|
||||||
|
distclean-generic:
|
||||||
|
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||||
|
|
||||||
|
maintainer-clean-generic:
|
||||||
|
@echo "This command is intended for maintainers to use"
|
||||||
|
@echo "it deletes files that may require special tools to rebuild."
|
||||||
|
clean: clean-am
|
||||||
|
|
||||||
|
clean-am: clean-generic mostlyclean-am
|
||||||
|
|
||||||
|
distclean: distclean-am
|
||||||
|
-rm -f Makefile
|
||||||
|
distclean-am: clean-am distclean-generic
|
||||||
|
|
||||||
|
dvi: dvi-am
|
||||||
|
|
||||||
|
dvi-am:
|
||||||
|
|
||||||
|
html: html-am
|
||||||
|
|
||||||
|
info: info-am
|
||||||
|
|
||||||
|
info-am:
|
||||||
|
|
||||||
|
install-data-am:
|
||||||
|
|
||||||
|
install-exec-am: install-binSCRIPTS
|
||||||
|
|
||||||
|
install-info: install-info-am
|
||||||
|
|
||||||
|
install-man:
|
||||||
|
|
||||||
|
installcheck-am:
|
||||||
|
|
||||||
|
maintainer-clean: maintainer-clean-am
|
||||||
|
-rm -f Makefile
|
||||||
|
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||||
|
|
||||||
|
mostlyclean: mostlyclean-am
|
||||||
|
|
||||||
|
mostlyclean-am: mostlyclean-generic
|
||||||
|
|
||||||
|
pdf: pdf-am
|
||||||
|
|
||||||
|
pdf-am:
|
||||||
|
|
||||||
|
ps: ps-am
|
||||||
|
|
||||||
|
ps-am:
|
||||||
|
|
||||||
|
uninstall-am: uninstall-binSCRIPTS uninstall-info-am
|
||||||
|
|
||||||
|
.PHONY: all all-am check check-am clean clean-generic distclean \
|
||||||
|
distclean-generic distdir dvi dvi-am html html-am info info-am \
|
||||||
|
install install-am install-binSCRIPTS install-data \
|
||||||
|
install-data-am install-exec install-exec-am install-info \
|
||||||
|
install-info-am install-man install-strip installcheck \
|
||||||
|
installcheck-am installdirs maintainer-clean \
|
||||||
|
maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
|
||||||
|
pdf-am ps ps-am uninstall uninstall-am uninstall-binSCRIPTS \
|
||||||
|
uninstall-info-am
|
||||||
|
|
||||||
|
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||||
|
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||||
|
.NOEXPORT:
|
11
vim_plugins_src/cscope-15.7a/contrib/README
Normal file
11
vim_plugins_src/cscope-15.7a/contrib/README
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
Contributed addons and wrappers for cscope
|
||||||
|
$Id: README,v 1.3 2001/07/02 20:57:45 petr Exp $
|
||||||
|
|
||||||
|
ocs - wrapper for cscope providing database generation through recursive
|
||||||
|
directory set (among other things) - docced in script itself.
|
||||||
|
contributed from SCO osr5.
|
||||||
|
|
||||||
|
webcscope - a web cgi interface to cscope. Contributed by Ragho Mahalingam,
|
||||||
|
using code from Dmitry Obukhovi and Steven E. Brenner.
|
||||||
|
|
||||||
|
xcscope - An (X)Emacs interface to cscope.
|
308
vim_plugins_src/cscope-15.7a/contrib/ocs
Normal file
308
vim_plugins_src/cscope-15.7a/contrib/ocs
Normal file
|
@ -0,0 +1,308 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# $Id: ocs,v 1.4 2004/06/21 18:13:21 broeker Exp $
|
||||||
|
# This utility maintains the database for cscope on a recursive dir set
|
||||||
|
# Author: donwo Tue Jun 25 15:36:39 PDT 1996
|
||||||
|
# Modified: hops Jan 2000 chg defaults to not update if files exist and force
|
||||||
|
#
|
||||||
|
# These comments ARE the manual. What more do you really need?
|
||||||
|
# if using unadorned cscope with this use cscope -d so not trash db
|
||||||
|
# cscope -L -0 <ptn> - to display ptn matches on stdout
|
||||||
|
#
|
||||||
|
# The lists of files are kept in two forms:
|
||||||
|
# TMP cscope.tmplst
|
||||||
|
# The list generated by this program
|
||||||
|
# This list will be updated each time this program
|
||||||
|
# is executed.
|
||||||
|
#
|
||||||
|
# LST cscope.lst
|
||||||
|
# The fixed list generated by some other process
|
||||||
|
# This list will be used, if found, rather than
|
||||||
|
# the TMP form generated here.
|
||||||
|
#
|
||||||
|
# CSD cscope.csd
|
||||||
|
# The fixed list generated by some other process
|
||||||
|
# This list will be used, if found, rather than
|
||||||
|
# the LST or TMP forms. CSD differs from LST in
|
||||||
|
# that the CSD list is used where the source files
|
||||||
|
# change only seldom. Cscope is requested not to
|
||||||
|
# check for changed files. This can be
|
||||||
|
# significantly faster on large source trees.
|
||||||
|
#
|
||||||
|
# INC cscope.inc
|
||||||
|
# This is a list of additional directories
|
||||||
|
# in which to search for include files.
|
||||||
|
#
|
||||||
|
# Three hierarchies of libraries are supported:
|
||||||
|
# Local In the current directory ./
|
||||||
|
# This is most useful for transient projects or
|
||||||
|
# where the information is of no use to others on
|
||||||
|
# the system. This type is NOT usable on source
|
||||||
|
# directories that are read-only.
|
||||||
|
# Home In users home directory $HOME/lib/cs/`pwd`
|
||||||
|
# This is good for items that seldom change but are
|
||||||
|
# of use only the the current user. This type is
|
||||||
|
# usable on source directories that are read-only.
|
||||||
|
# System In a global system directory $SYSDIR/`pwd`
|
||||||
|
# This is for items that are of interest to all accounts.
|
||||||
|
# This option is not available unless the system directory
|
||||||
|
# is writable by the current user. This type is usable
|
||||||
|
# on source directories that are read-only.
|
||||||
|
#
|
||||||
|
# If a shell script named ./cscope.rc is found and is
|
||||||
|
# executable, the execution of it will be included within this
|
||||||
|
# script after defaults_set/cmdline_parse and locating the
|
||||||
|
# database.
|
||||||
|
#
|
||||||
|
# Command line options:
|
||||||
|
# -x set shell debugging
|
||||||
|
# -f force
|
||||||
|
# o Do not ask about regenerating TMP. Just do it.
|
||||||
|
# o Allow cscope to regenerate libraries for CSD lists.
|
||||||
|
# -q Tell cscope to build an inverted index for quick
|
||||||
|
# symbol searching. There is a SIGNIFICANT
|
||||||
|
# increase in speed with this option however the
|
||||||
|
# disk space used is doubled. Once the quick
|
||||||
|
# database is generated, cs will detect the files
|
||||||
|
# and continue to use them.
|
||||||
|
# -d Do not regenerate. Intended for cscope sub-tasks.
|
||||||
|
# -u Update/regenerate.
|
||||||
|
|
||||||
|
#
|
||||||
|
# Here is where we put things
|
||||||
|
|
||||||
|
CSCOPE=cscope
|
||||||
|
HOMEDIR=${HOME}/lib/cs
|
||||||
|
|
||||||
|
#set the default value for SYSDIR
|
||||||
|
if [ -z "${SYSDIR}" ]; then
|
||||||
|
SYSDIR=/usr/local/lib/cs
|
||||||
|
echo setting default sysdir
|
||||||
|
fi
|
||||||
|
|
||||||
|
#check that SYSDIR exists
|
||||||
|
if [ ! -d ${SYSDIR} ]; then
|
||||||
|
echo -n $SYSDIR does not exist.
|
||||||
|
echo Please create the directory and set SYSDIR appropriately
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check that cscope is in PATH
|
||||||
|
type cscope 1>/dev/null 2>&1
|
||||||
|
|
||||||
|
if [ $? -ne 0 ]
|
||||||
|
then
|
||||||
|
echo "ERROR: cscope is not in \$PATH" >&2
|
||||||
|
echo " Please set \$PATH correctly or make sure cscope is installed" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# popup editor
|
||||||
|
#XCS_EDITOR=${HOME}/bin/x_cscope_editor
|
||||||
|
XCS_EDITOR=${HOME}/bin/xme
|
||||||
|
if [ -n "$DISPLAY" -a -x ${XCS_EDITOR} ]
|
||||||
|
then
|
||||||
|
EDITOR=${XCS_EDITOR}
|
||||||
|
export EDITOR
|
||||||
|
fi
|
||||||
|
unset XCS_EDITOR
|
||||||
|
|
||||||
|
#
|
||||||
|
# Misc defaults
|
||||||
|
|
||||||
|
#FORCE=N
|
||||||
|
#NOUPDATE=
|
||||||
|
FORCE=Y # hops - default to force rather than query
|
||||||
|
NOUPDATE=-d # hops - default to no update if files already exist
|
||||||
|
QUICK=
|
||||||
|
SPECDEST= # hops - query for files
|
||||||
|
|
||||||
|
#
|
||||||
|
# Parse the command line
|
||||||
|
|
||||||
|
set -- `getopt xfqdu $*`
|
||||||
|
|
||||||
|
if [ $? -ne 0 ]
|
||||||
|
then
|
||||||
|
echo "Use: cs [-x] [-f] [-q] [-u]" >&2
|
||||||
|
echo " -x debug on " >&2
|
||||||
|
echo " -q quick Index - faster search but larger index" >&2
|
||||||
|
echo " -f ask about about regeneration" >&2
|
||||||
|
echo " -d don't update database (default)" >&2
|
||||||
|
echo " -u update database" >&2
|
||||||
|
echo " -s specify where files go" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
for arg
|
||||||
|
do
|
||||||
|
case $arg in
|
||||||
|
-x ) set -x; shift ;;
|
||||||
|
-f ) FORCE=N; NOUPDATE=; shift;;
|
||||||
|
-q ) QUICK=-q; shift ;;
|
||||||
|
-d ) NOUPDATE=-d; shift ;;
|
||||||
|
-u ) NOUPDATE=; shift ;;
|
||||||
|
-s ) SPECDEST=Y; shift ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
#
|
||||||
|
# Here is the security hole. Execute whatever is needed for
|
||||||
|
# this project. A per-project setup script may be available.
|
||||||
|
|
||||||
|
[ -x ./cscope.rc ] && {
|
||||||
|
. ./cscope.rc
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# We look hard for appropriate files to scope. We ignore items
|
||||||
|
# containing "SCCS" assuming that these are directories of
|
||||||
|
# source code control data.
|
||||||
|
|
||||||
|
create_list()
|
||||||
|
{
|
||||||
|
LIST=$1
|
||||||
|
|
||||||
|
if [ -f ${LIST} ]
|
||||||
|
then
|
||||||
|
[ -n "${NOUPDATE}" ] && return
|
||||||
|
|
||||||
|
if [ "${FORCE}" != "Y" ]
|
||||||
|
then
|
||||||
|
echo "\n${LIST}"
|
||||||
|
echo "Update the library? <(Y)es, (N)o, (Q)uit> [n] \c"
|
||||||
|
read x y
|
||||||
|
case $x in
|
||||||
|
[Yy]* ) ;;
|
||||||
|
[Qq]* ) exit 1 ;;
|
||||||
|
*) return ;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
echo "Updating library:\n ${LIST} \c"
|
||||||
|
else
|
||||||
|
echo "Creating library:\n ${LIST} \c"
|
||||||
|
fi
|
||||||
|
|
||||||
|
(
|
||||||
|
find . -follow -type f \( -name \*.[sScChHlyG] -o \
|
||||||
|
-name \*.asm -o \
|
||||||
|
-name \*.cc -o \
|
||||||
|
-name \*.cxx -o \
|
||||||
|
-name \*.ccP -o \
|
||||||
|
-name \*.hP -o \
|
||||||
|
-name \*.inc -o \
|
||||||
|
-name \*.ed -o \
|
||||||
|
-name vuifile -o \
|
||||||
|
-name Gensymvals -o \
|
||||||
|
-name \[mM\]ake\* \) \
|
||||||
|
-print
|
||||||
|
) | grep -v SCCS | sort -u > ${LIST}
|
||||||
|
|
||||||
|
echo "\n`cat ${LIST} | wc -l` files listed"
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Expand the include file list into command line arguments
|
||||||
|
|
||||||
|
exp_inc()
|
||||||
|
{
|
||||||
|
theInc=$1
|
||||||
|
|
||||||
|
if [ -s "${theInc}" ]
|
||||||
|
then
|
||||||
|
for i in `cat ${theInc}`
|
||||||
|
do
|
||||||
|
echo "-I $i \c"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# This routine does not return to the caller
|
||||||
|
|
||||||
|
do_cscope()
|
||||||
|
{
|
||||||
|
LIST=$1
|
||||||
|
CSLIB=$2
|
||||||
|
INC=$3
|
||||||
|
shift;shift;shift
|
||||||
|
ARGS="$*"
|
||||||
|
|
||||||
|
INCARGS=`exp_inc ${INC}`
|
||||||
|
|
||||||
|
echo "exec cscope"
|
||||||
|
exec $CSCOPE ${ARGS} -p 2 ${INCARGS} -i ${LIST} -f ${CSLIB}
|
||||||
|
echo "exec of $CSCOPE failed" >&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# If we have existing libraries, we should use them.
|
||||||
|
std_libs()
|
||||||
|
{
|
||||||
|
DIR=$1
|
||||||
|
OUT=${DIR}/cscope.out
|
||||||
|
LST=${DIR}/cscope.lst
|
||||||
|
CSD=${DIR}/cscope.csd
|
||||||
|
TMP=${DIR}/cscope.tmplst
|
||||||
|
INC=${DIR}/cscope.inc
|
||||||
|
QCK=${DIR}/cscope.out.po
|
||||||
|
|
||||||
|
[ -s ${QCK} ] && QUICK=-q
|
||||||
|
|
||||||
|
[ -f ${CSD} ] && {
|
||||||
|
if [ "${FORCE}" = "Y" ]
|
||||||
|
then
|
||||||
|
do_cscope ${CSD} ${OUT} ${INC} ${QUICK}
|
||||||
|
else
|
||||||
|
do_cscope ${CSD} ${OUT} ${INC} ${QUICK} -d
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
[ -f ${LST} ] && do_cscope ${LST} ${OUT} ${INC} ${QUICK} ${NOUPDATE}
|
||||||
|
|
||||||
|
[ -f ${TMP} ] && {
|
||||||
|
create_list ${TMP}
|
||||||
|
do_cscope ${TMP} ${OUT} ${INC} ${QUICK} ${NOUPDATE}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# ######## main() #######
|
||||||
|
|
||||||
|
umask 0
|
||||||
|
PWD=`pwd`
|
||||||
|
|
||||||
|
umask 02
|
||||||
|
|
||||||
|
#
|
||||||
|
# Check for existing libraries
|
||||||
|
|
||||||
|
std_libs $PWD
|
||||||
|
std_libs ${HOMEDIR}$PWD
|
||||||
|
std_libs ${SYSDIR}$PWD
|
||||||
|
|
||||||
|
#
|
||||||
|
# We may need to create one for this area
|
||||||
|
|
||||||
|
DIR=$PWD
|
||||||
|
if [ ! -n "${NOUPDATE}" -o -n "${SPECDEST}" ] ; then
|
||||||
|
echo "Create new library? <(L)ocal, (H)ome, (S)ystem, (Q)uit> [q] \c"
|
||||||
|
read x y
|
||||||
|
case $x in
|
||||||
|
[Ll]* ) DIR=$PWD ;;
|
||||||
|
[Hh]* ) DIR=${HOMEDIR}$PWD ;;
|
||||||
|
[Ss]* ) DIR=${SYSDIR}$PWD ;;
|
||||||
|
*) exit 1 ;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
[ -d $DIR ] || {
|
||||||
|
mkdir -p $DIR || exit $?
|
||||||
|
}
|
||||||
|
|
||||||
|
OUT=${DIR}/cscope.out
|
||||||
|
TMP=${DIR}/cscope.tmplst
|
||||||
|
INC=${DIR}/cscope.inc
|
||||||
|
|
||||||
|
create_list ${TMP}
|
||||||
|
do_cscope ${TMP} ${OUT} ${INC} ${QUICK}
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
/INSTALL/1.1/Fri Jun 29 14:20:16 2001//
|
||||||
|
/LICENSE/1.1/Fri Jun 29 14:20:16 2001//
|
||||||
|
/TODO/1.1/Fri Jun 29 14:20:16 2001//
|
||||||
|
/cgi-lib.pl/1.1/Fri Jun 29 14:20:16 2001//
|
||||||
|
/hilite.c/1.1/Fri Jun 29 14:20:16 2001//
|
||||||
|
D/icons////
|
||||||
|
/cscope/1.2/Sun Jan 7 12:34:02 2007//
|
|
@ -0,0 +1,7 @@
|
||||||
|
/INSTALL////
|
||||||
|
/LICENSE////
|
||||||
|
/TODO////
|
||||||
|
/cgi-lib.pl////
|
||||||
|
/hilite.c////
|
||||||
|
D/icons////
|
||||||
|
/cscope////
|
|
@ -0,0 +1,7 @@
|
||||||
|
/INSTALL////
|
||||||
|
/LICENSE////
|
||||||
|
/TODO////
|
||||||
|
/cgi-lib.pl////
|
||||||
|
/cscope////
|
||||||
|
/hilite.c////
|
||||||
|
D/icons////
|
|
@ -0,0 +1,7 @@
|
||||||
|
/INSTALL/1.1/Fri Jun 29 14:20:16 2001//
|
||||||
|
/LICENSE/1.1/Fri Jun 29 14:20:16 2001//
|
||||||
|
/TODO/1.1/Fri Jun 29 14:20:16 2001//
|
||||||
|
/cgi-lib.pl/1.1/Fri Jun 29 14:20:16 2001//
|
||||||
|
/cscope/1.1/Fri Jun 29 14:20:16 2001//
|
||||||
|
/hilite.c/1.1/Fri Jun 29 14:20:16 2001//
|
||||||
|
D/icons////
|
|
@ -0,0 +1 @@
|
||||||
|
cscope/contrib/webcscope
|
1
vim_plugins_src/cscope-15.7a/contrib/webcscope/CVS/Root
Normal file
1
vim_plugins_src/cscope-15.7a/contrib/webcscope/CVS/Root
Normal file
|
@ -0,0 +1 @@
|
||||||
|
:ssh;username=broeker;hostname=cscope.cvs.sourceforge.net:/cvsroot/cscope
|
31
vim_plugins_src/cscope-15.7a/contrib/webcscope/INSTALL
Normal file
31
vim_plugins_src/cscope-15.7a/contrib/webcscope/INSTALL
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
WebCScope Installation
|
||||||
|
|
||||||
|
Quick Install
|
||||||
|
|
||||||
|
0. Create a directory called cscope under your /cgi-bin (virtual) directory.
|
||||||
|
Copy all the files in the distribution to this directory.
|
||||||
|
|
||||||
|
1. Edit the 'cscope' file and change the following items:
|
||||||
|
- Location to the perl interpreter
|
||||||
|
- Location of the cscope database and other modifiable parameters
|
||||||
|
- Feedback name and email
|
||||||
|
- Location of the syntax highlighter, if you wish to use it
|
||||||
|
|
||||||
|
2. Syntax highlighter
|
||||||
|
- The syntax highlighter must be built if you decide to use it. If you
|
||||||
|
do not want syntax highlighting, you can ignore this step and set the
|
||||||
|
highlighter to /bin/cat.
|
||||||
|
- Compile 'hilite.c' using 'gcc -o hilite hilite.c'
|
||||||
|
|
||||||
|
3. Icons
|
||||||
|
- Copy the images from the icons directory into the /icons (virtual)
|
||||||
|
directory on the web server. You can also replace these images with
|
||||||
|
whatever you choose.
|
||||||
|
|
||||||
|
4. Organizing your CScope databases
|
||||||
|
- WebCScope supports multiple databases in $cscopedir
|
||||||
|
- Create a directory for each project or sub-source in $cscopedir and,
|
||||||
|
generate your cscope database using the following commands.
|
||||||
|
- find /some/source/dir -name '*.[chyls]' -print > cscope.files
|
||||||
|
- cscope -b -q
|
||||||
|
- Repeat the above step for each database you wish to create
|
340
vim_plugins_src/cscope-15.7a/contrib/webcscope/LICENSE
Normal file
340
vim_plugins_src/cscope-15.7a/contrib/webcscope/LICENSE
Normal file
|
@ -0,0 +1,340 @@
|
||||||
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
Version 2, June 1991
|
||||||
|
|
||||||
|
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||||
|
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
|
Preamble
|
||||||
|
|
||||||
|
The licenses for most software are designed to take away your
|
||||||
|
freedom to share and change it. By contrast, the GNU General Public
|
||||||
|
License is intended to guarantee your freedom to share and change free
|
||||||
|
software--to make sure the software is free for all its users. This
|
||||||
|
General Public License applies to most of the Free Software
|
||||||
|
Foundation's software and to any other program whose authors commit to
|
||||||
|
using it. (Some other Free Software Foundation software is covered by
|
||||||
|
the GNU Library General Public License instead.) You can apply it to
|
||||||
|
your programs, too.
|
||||||
|
|
||||||
|
When we speak of free software, we are referring to freedom, not
|
||||||
|
price. Our General Public Licenses are designed to make sure that you
|
||||||
|
have the freedom to distribute copies of free software (and charge for
|
||||||
|
this service if you wish), that you receive source code or can get it
|
||||||
|
if you want it, that you can change the software or use pieces of it
|
||||||
|
in new free programs; and that you know you can do these things.
|
||||||
|
|
||||||
|
To protect your rights, we need to make restrictions that forbid
|
||||||
|
anyone to deny you these rights or to ask you to surrender the rights.
|
||||||
|
These restrictions translate to certain responsibilities for you if you
|
||||||
|
distribute copies of the software, or if you modify it.
|
||||||
|
|
||||||
|
For example, if you distribute copies of such a program, whether
|
||||||
|
gratis or for a fee, you must give the recipients all the rights that
|
||||||
|
you have. You must make sure that they, too, receive or can get the
|
||||||
|
source code. And you must show them these terms so they know their
|
||||||
|
rights.
|
||||||
|
|
||||||
|
We protect your rights with two steps: (1) copyright the software, and
|
||||||
|
(2) offer you this license which gives you legal permission to copy,
|
||||||
|
distribute and/or modify the software.
|
||||||
|
|
||||||
|
Also, for each author's protection and ours, we want to make certain
|
||||||
|
that everyone understands that there is no warranty for this free
|
||||||
|
software. If the software is modified by someone else and passed on, we
|
||||||
|
want its recipients to know that what they have is not the original, so
|
||||||
|
that any problems introduced by others will not reflect on the original
|
||||||
|
authors' reputations.
|
||||||
|
|
||||||
|
Finally, any free program is threatened constantly by software
|
||||||
|
patents. We wish to avoid the danger that redistributors of a free
|
||||||
|
program will individually obtain patent licenses, in effect making the
|
||||||
|
program proprietary. To prevent this, we have made it clear that any
|
||||||
|
patent must be licensed for everyone's free use or not licensed at all.
|
||||||
|
|
||||||
|
The precise terms and conditions for copying, distribution and
|
||||||
|
modification follow.
|
||||||
|
|
||||||
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||||
|
|
||||||
|
0. This License applies to any program or other work which contains
|
||||||
|
a notice placed by the copyright holder saying it may be distributed
|
||||||
|
under the terms of this General Public License. The "Program", below,
|
||||||
|
refers to any such program or work, and a "work based on the Program"
|
||||||
|
means either the Program or any derivative work under copyright law:
|
||||||
|
that is to say, a work containing the Program or a portion of it,
|
||||||
|
either verbatim or with modifications and/or translated into another
|
||||||
|
language. (Hereinafter, translation is included without limitation in
|
||||||
|
the term "modification".) Each licensee is addressed as "you".
|
||||||
|
|
||||||
|
Activities other than copying, distribution and modification are not
|
||||||
|
covered by this License; they are outside its scope. The act of
|
||||||
|
running the Program is not restricted, and the output from the Program
|
||||||
|
is covered only if its contents constitute a work based on the
|
||||||
|
Program (independent of having been made by running the Program).
|
||||||
|
Whether that is true depends on what the Program does.
|
||||||
|
|
||||||
|
1. You may copy and distribute verbatim copies of the Program's
|
||||||
|
source code as you receive it, in any medium, provided that you
|
||||||
|
conspicuously and appropriately publish on each copy an appropriate
|
||||||
|
copyright notice and disclaimer of warranty; keep intact all the
|
||||||
|
notices that refer to this License and to the absence of any warranty;
|
||||||
|
and give any other recipients of the Program a copy of this License
|
||||||
|
along with the Program.
|
||||||
|
|
||||||
|
You may charge a fee for the physical act of transferring a copy, and
|
||||||
|
you may at your option offer warranty protection in exchange for a fee.
|
||||||
|
|
||||||
|
2. You may modify your copy or copies of the Program or any portion
|
||||||
|
of it, thus forming a work based on the Program, and copy and
|
||||||
|
distribute such modifications or work under the terms of Section 1
|
||||||
|
above, provided that you also meet all of these conditions:
|
||||||
|
|
||||||
|
a) You must cause the modified files to carry prominent notices
|
||||||
|
stating that you changed the files and the date of any change.
|
||||||
|
|
||||||
|
b) You must cause any work that you distribute or publish, that in
|
||||||
|
whole or in part contains or is derived from the Program or any
|
||||||
|
part thereof, to be licensed as a whole at no charge to all third
|
||||||
|
parties under the terms of this License.
|
||||||
|
|
||||||
|
c) If the modified program normally reads commands interactively
|
||||||
|
when run, you must cause it, when started running for such
|
||||||
|
interactive use in the most ordinary way, to print or display an
|
||||||
|
announcement including an appropriate copyright notice and a
|
||||||
|
notice that there is no warranty (or else, saying that you provide
|
||||||
|
a warranty) and that users may redistribute the program under
|
||||||
|
these conditions, and telling the user how to view a copy of this
|
||||||
|
License. (Exception: if the Program itself is interactive but
|
||||||
|
does not normally print such an announcement, your work based on
|
||||||
|
the Program is not required to print an announcement.)
|
||||||
|
|
||||||
|
These requirements apply to the modified work as a whole. If
|
||||||
|
identifiable sections of that work are not derived from the Program,
|
||||||
|
and can be reasonably considered independent and separate works in
|
||||||
|
themselves, then this License, and its terms, do not apply to those
|
||||||
|
sections when you distribute them as separate works. But when you
|
||||||
|
distribute the same sections as part of a whole which is a work based
|
||||||
|
on the Program, the distribution of the whole must be on the terms of
|
||||||
|
this License, whose permissions for other licensees extend to the
|
||||||
|
entire whole, and thus to each and every part regardless of who wrote it.
|
||||||
|
|
||||||
|
Thus, it is not the intent of this section to claim rights or contest
|
||||||
|
your rights to work written entirely by you; rather, the intent is to
|
||||||
|
exercise the right to control the distribution of derivative or
|
||||||
|
collective works based on the Program.
|
||||||
|
|
||||||
|
In addition, mere aggregation of another work not based on the Program
|
||||||
|
with the Program (or with a work based on the Program) on a volume of
|
||||||
|
a storage or distribution medium does not bring the other work under
|
||||||
|
the scope of this License.
|
||||||
|
|
||||||
|
3. You may copy and distribute the Program (or a work based on it,
|
||||||
|
under Section 2) in object code or executable form under the terms of
|
||||||
|
Sections 1 and 2 above provided that you also do one of the following:
|
||||||
|
|
||||||
|
a) Accompany it with the complete corresponding machine-readable
|
||||||
|
source code, which must be distributed under the terms of Sections
|
||||||
|
1 and 2 above on a medium customarily used for software interchange; or,
|
||||||
|
|
||||||
|
b) Accompany it with a written offer, valid for at least three
|
||||||
|
years, to give any third party, for a charge no more than your
|
||||||
|
cost of physically performing source distribution, a complete
|
||||||
|
machine-readable copy of the corresponding source code, to be
|
||||||
|
distributed under the terms of Sections 1 and 2 above on a medium
|
||||||
|
customarily used for software interchange; or,
|
||||||
|
|
||||||
|
c) Accompany it with the information you received as to the offer
|
||||||
|
to distribute corresponding source code. (This alternative is
|
||||||
|
allowed only for noncommercial distribution and only if you
|
||||||
|
received the program in object code or executable form with such
|
||||||
|
an offer, in accord with Subsection b above.)
|
||||||
|
|
||||||
|
The source code for a work means the preferred form of the work for
|
||||||
|
making modifications to it. For an executable work, complete source
|
||||||
|
code means all the source code for all modules it contains, plus any
|
||||||
|
associated interface definition files, plus the scripts used to
|
||||||
|
control compilation and installation of the executable. However, as a
|
||||||
|
special exception, the source code distributed need not include
|
||||||
|
anything that is normally distributed (in either source or binary
|
||||||
|
form) with the major components (compiler, kernel, and so on) of the
|
||||||
|
operating system on which the executable runs, unless that component
|
||||||
|
itself accompanies the executable.
|
||||||
|
|
||||||
|
If distribution of executable or object code is made by offering
|
||||||
|
access to copy from a designated place, then offering equivalent
|
||||||
|
access to copy the source code from the same place counts as
|
||||||
|
distribution of the source code, even though third parties are not
|
||||||
|
compelled to copy the source along with the object code.
|
||||||
|
|
||||||
|
4. You may not copy, modify, sublicense, or distribute the Program
|
||||||
|
except as expressly provided under this License. Any attempt
|
||||||
|
otherwise to copy, modify, sublicense or distribute the Program is
|
||||||
|
void, and will automatically terminate your rights under this License.
|
||||||
|
However, parties who have received copies, or rights, from you under
|
||||||
|
this License will not have their licenses terminated so long as such
|
||||||
|
parties remain in full compliance.
|
||||||
|
|
||||||
|
5. You are not required to accept this License, since you have not
|
||||||
|
signed it. However, nothing else grants you permission to modify or
|
||||||
|
distribute the Program or its derivative works. These actions are
|
||||||
|
prohibited by law if you do not accept this License. Therefore, by
|
||||||
|
modifying or distributing the Program (or any work based on the
|
||||||
|
Program), you indicate your acceptance of this License to do so, and
|
||||||
|
all its terms and conditions for copying, distributing or modifying
|
||||||
|
the Program or works based on it.
|
||||||
|
|
||||||
|
6. Each time you redistribute the Program (or any work based on the
|
||||||
|
Program), the recipient automatically receives a license from the
|
||||||
|
original licensor to copy, distribute or modify the Program subject to
|
||||||
|
these terms and conditions. You may not impose any further
|
||||||
|
restrictions on the recipients' exercise of the rights granted herein.
|
||||||
|
You are not responsible for enforcing compliance by third parties to
|
||||||
|
this License.
|
||||||
|
|
||||||
|
7. If, as a consequence of a court judgment or allegation of patent
|
||||||
|
infringement or for any other reason (not limited to patent issues),
|
||||||
|
conditions are imposed on you (whether by court order, agreement or
|
||||||
|
otherwise) that contradict the conditions of this License, they do not
|
||||||
|
excuse you from the conditions of this License. If you cannot
|
||||||
|
distribute so as to satisfy simultaneously your obligations under this
|
||||||
|
License and any other pertinent obligations, then as a consequence you
|
||||||
|
may not distribute the Program at all. For example, if a patent
|
||||||
|
license would not permit royalty-free redistribution of the Program by
|
||||||
|
all those who receive copies directly or indirectly through you, then
|
||||||
|
the only way you could satisfy both it and this License would be to
|
||||||
|
refrain entirely from distribution of the Program.
|
||||||
|
|
||||||
|
If any portion of this section is held invalid or unenforceable under
|
||||||
|
any particular circumstance, the balance of the section is intended to
|
||||||
|
apply and the section as a whole is intended to apply in other
|
||||||
|
circumstances.
|
||||||
|
|
||||||
|
It is not the purpose of this section to induce you to infringe any
|
||||||
|
patents or other property right claims or to contest validity of any
|
||||||
|
such claims; this section has the sole purpose of protecting the
|
||||||
|
integrity of the free software distribution system, which is
|
||||||
|
implemented by public license practices. Many people have made
|
||||||
|
generous contributions to the wide range of software distributed
|
||||||
|
through that system in reliance on consistent application of that
|
||||||
|
system; it is up to the author/donor to decide if he or she is willing
|
||||||
|
to distribute software through any other system and a licensee cannot
|
||||||
|
impose that choice.
|
||||||
|
|
||||||
|
This section is intended to make thoroughly clear what is believed to
|
||||||
|
be a consequence of the rest of this License.
|
||||||
|
|
||||||
|
8. If the distribution and/or use of the Program is restricted in
|
||||||
|
certain countries either by patents or by copyrighted interfaces, the
|
||||||
|
original copyright holder who places the Program under this License
|
||||||
|
may add an explicit geographical distribution limitation excluding
|
||||||
|
those countries, so that distribution is permitted only in or among
|
||||||
|
countries not thus excluded. In such case, this License incorporates
|
||||||
|
the limitation as if written in the body of this License.
|
||||||
|
|
||||||
|
9. The Free Software Foundation may publish revised and/or new versions
|
||||||
|
of the General Public License from time to time. Such new versions will
|
||||||
|
be similar in spirit to the present version, but may differ in detail to
|
||||||
|
address new problems or concerns.
|
||||||
|
|
||||||
|
Each version is given a distinguishing version number. If the Program
|
||||||
|
specifies a version number of this License which applies to it and "any
|
||||||
|
later version", you have the option of following the terms and conditions
|
||||||
|
either of that version or of any later version published by the Free
|
||||||
|
Software Foundation. If the Program does not specify a version number of
|
||||||
|
this License, you may choose any version ever published by the Free Software
|
||||||
|
Foundation.
|
||||||
|
|
||||||
|
10. If you wish to incorporate parts of the Program into other free
|
||||||
|
programs whose distribution conditions are different, write to the author
|
||||||
|
to ask for permission. For software which is copyrighted by the Free
|
||||||
|
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||||
|
make exceptions for this. Our decision will be guided by the two goals
|
||||||
|
of preserving the free status of all derivatives of our free software and
|
||||||
|
of promoting the sharing and reuse of software generally.
|
||||||
|
|
||||||
|
NO WARRANTY
|
||||||
|
|
||||||
|
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||||
|
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||||
|
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||||
|
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||||
|
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||||
|
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||||
|
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||||
|
REPAIR OR CORRECTION.
|
||||||
|
|
||||||
|
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||||
|
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||||
|
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||||
|
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||||
|
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||||
|
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||||
|
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||||
|
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||||
|
POSSIBILITY OF SUCH DAMAGES.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
How to Apply These Terms to Your New Programs
|
||||||
|
|
||||||
|
If you develop a new program, and you want it to be of the greatest
|
||||||
|
possible use to the public, the best way to achieve this is to make it
|
||||||
|
free software which everyone can redistribute and change under these terms.
|
||||||
|
|
||||||
|
To do so, attach the following notices to the program. It is safest
|
||||||
|
to attach them to the start of each source file to most effectively
|
||||||
|
convey the exclusion of warranty; and each file should have at least
|
||||||
|
the "copyright" line and a pointer to where the full notice is found.
|
||||||
|
|
||||||
|
<one line to give the program's name and a brief idea of what it does.>
|
||||||
|
Copyright (C) <year> <name of author>
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
|
||||||
|
|
||||||
|
Also add information on how to contact you by electronic and paper mail.
|
||||||
|
|
||||||
|
If the program is interactive, make it output a short notice like this
|
||||||
|
when it starts in an interactive mode:
|
||||||
|
|
||||||
|
Gnomovision version 69, Copyright (C) year name of author
|
||||||
|
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||||
|
This is free software, and you are welcome to redistribute it
|
||||||
|
under certain conditions; type `show c' for details.
|
||||||
|
|
||||||
|
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||||
|
parts of the General Public License. Of course, the commands you use may
|
||||||
|
be called something other than `show w' and `show c'; they could even be
|
||||||
|
mouse-clicks or menu items--whatever suits your program.
|
||||||
|
|
||||||
|
You should also get your employer (if you work as a programmer) or your
|
||||||
|
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||||
|
necessary. Here is a sample; alter the names:
|
||||||
|
|
||||||
|
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||||
|
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||||
|
|
||||||
|
<signature of Ty Coon>, 1 April 1989
|
||||||
|
Ty Coon, President of Vice
|
||||||
|
|
||||||
|
This General Public License does not permit incorporating your program into
|
||||||
|
proprietary programs. If your program is a subroutine library, you may
|
||||||
|
consider it more useful to permit linking proprietary applications with the
|
||||||
|
library. If this is what you want to do, use the GNU Library General
|
||||||
|
Public License instead of this License.
|
5
vim_plugins_src/cscope-15.7a/contrib/webcscope/TODO
Normal file
5
vim_plugins_src/cscope-15.7a/contrib/webcscope/TODO
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
|
||||||
|
- Better error checking and the like
|
||||||
|
- Add a more robust cookie mechanism
|
||||||
|
- More efficient way of searching 'all' databases
|
||||||
|
- Fix bugs
|
471
vim_plugins_src/cscope-15.7a/contrib/webcscope/cgi-lib.pl
Normal file
471
vim_plugins_src/cscope-15.7a/contrib/webcscope/cgi-lib.pl
Normal file
|
@ -0,0 +1,471 @@
|
||||||
|
# Perl Routines to Manipulate CGI input
|
||||||
|
# cgi-lib@pobox.com
|
||||||
|
# $Id: cgi-lib.pl,v 1.1 2001/06/29 14:20:16 petr Exp $
|
||||||
|
#
|
||||||
|
# Copyright (c) 1993-1999 Steven E. Brenner
|
||||||
|
# Unpublished work.
|
||||||
|
# Permission granted to use and modify this library so long as the
|
||||||
|
# copyright above is maintained, modifications are documented, and
|
||||||
|
# credit is given for any use of the library.
|
||||||
|
#
|
||||||
|
# Thanks are due to many people for reporting bugs and suggestions
|
||||||
|
|
||||||
|
# For more information, see:
|
||||||
|
# http://cgi-lib.stanford.edu/cgi-lib/
|
||||||
|
|
||||||
|
$cgi_lib'version = sprintf("%d.%02d", q$Revision: 1.1 $ =~ /(\d+)\.(\d+)/);
|
||||||
|
|
||||||
|
|
||||||
|
# Parameters affecting cgi-lib behavior
|
||||||
|
# User-configurable parameters affecting file upload.
|
||||||
|
$cgi_lib'maxdata = 131072; # maximum bytes to accept via POST - 2^17
|
||||||
|
$cgi_lib'writefiles = 0; # directory to which to write files, or
|
||||||
|
# 0 if files should not be written
|
||||||
|
$cgi_lib'filepre = "cgi-lib"; # Prefix of file names, in directory above
|
||||||
|
|
||||||
|
# Do not change the following parameters unless you have special reasons
|
||||||
|
$cgi_lib'bufsize = 8192; # default buffer size when reading multipart
|
||||||
|
$cgi_lib'maxbound = 100; # maximum boundary length to be encounterd
|
||||||
|
$cgi_lib'headerout = 0; # indicates whether the header has been printed
|
||||||
|
|
||||||
|
|
||||||
|
# ReadParse
|
||||||
|
# Reads in GET or POST data, converts it to unescaped text, and puts
|
||||||
|
# key/value pairs in %in, using "\0" to separate multiple selections
|
||||||
|
|
||||||
|
# Returns >0 if there was input, 0 if there was no input
|
||||||
|
# undef indicates some failure.
|
||||||
|
|
||||||
|
# Now that cgi scripts can be put in the normal file space, it is useful
|
||||||
|
# to combine both the form and the script in one place. If no parameters
|
||||||
|
# are given (i.e., ReadParse returns FALSE), then a form could be output.
|
||||||
|
|
||||||
|
# If a reference to a hash is given, then the data will be stored in that
|
||||||
|
# hash, but the data from $in and @in will become inaccessable.
|
||||||
|
# If a variable-glob (e.g., *cgi_input) is the first parameter to ReadParse,
|
||||||
|
# information is stored there, rather than in $in, @in, and %in.
|
||||||
|
# Second, third, and fourth parameters fill associative arrays analagous to
|
||||||
|
# %in with data relevant to file uploads.
|
||||||
|
|
||||||
|
# If no method is given, the script will process both command-line arguments
|
||||||
|
# of the form: name=value and any text that is in $ENV{'QUERY_STRING'}
|
||||||
|
# This is intended to aid debugging and may be changed in future releases
|
||||||
|
|
||||||
|
sub ReadParse {
|
||||||
|
# Disable warnings as this code deliberately uses local and environment
|
||||||
|
# variables which are preset to undef (i.e., not explicitly initialized)
|
||||||
|
local ($perlwarn);
|
||||||
|
$perlwarn = $^W;
|
||||||
|
$^W = 0;
|
||||||
|
|
||||||
|
local (*in) = shift if @_; # CGI input
|
||||||
|
local (*incfn, # Client's filename (may not be provided)
|
||||||
|
*inct, # Client's content-type (may not be provided)
|
||||||
|
*insfn) = @_; # Server's filename (for spooled files)
|
||||||
|
local ($len, $type, $meth, $errflag, $cmdflag, $got, $name);
|
||||||
|
|
||||||
|
binmode(STDIN); # we need these for DOS-based systems
|
||||||
|
binmode(STDOUT); # and they shouldn't hurt anything else
|
||||||
|
binmode(STDERR);
|
||||||
|
|
||||||
|
# Get several useful env variables
|
||||||
|
$type = $ENV{'CONTENT_TYPE'};
|
||||||
|
$len = $ENV{'CONTENT_LENGTH'};
|
||||||
|
$meth = $ENV{'REQUEST_METHOD'};
|
||||||
|
|
||||||
|
if ($len > $cgi_lib'maxdata) { #'
|
||||||
|
&CgiDie("cgi-lib.pl: Request to receive too much data: $len bytes\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!defined $meth || $meth eq '' || $meth eq 'GET' ||
|
||||||
|
$meth eq 'HEAD' ||
|
||||||
|
$type eq 'application/x-www-form-urlencoded') {
|
||||||
|
local ($key, $val, $i);
|
||||||
|
|
||||||
|
# Read in text
|
||||||
|
if (!defined $meth || $meth eq '') {
|
||||||
|
$in = $ENV{'QUERY_STRING'};
|
||||||
|
$cmdflag = 1; # also use command-line options
|
||||||
|
} elsif($meth eq 'GET' || $meth eq 'HEAD') {
|
||||||
|
$in = $ENV{'QUERY_STRING'};
|
||||||
|
} elsif ($meth eq 'POST') {
|
||||||
|
if (($got = read(STDIN, $in, $len) != $len))
|
||||||
|
{$errflag="Short Read: wanted $len, got $got\n";};
|
||||||
|
} else {
|
||||||
|
&CgiDie("cgi-lib.pl: Unknown request method: $meth\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
@in = split(/[&;]/,$in);
|
||||||
|
push(@in, @ARGV) if $cmdflag; # add command-line parameters
|
||||||
|
|
||||||
|
foreach $i (0 .. $#in) {
|
||||||
|
# Convert plus to space
|
||||||
|
$in[$i] =~ s/\+/ /g;
|
||||||
|
|
||||||
|
# Split into key and value.
|
||||||
|
($key, $val) = split(/=/,$in[$i],2); # splits on the first =.
|
||||||
|
|
||||||
|
# Convert %XX from hex numbers to alphanumeric
|
||||||
|
$key =~ s/%([A-Fa-f0-9]{2})/pack("c",hex($1))/ge;
|
||||||
|
$val =~ s/%([A-Fa-f0-9]{2})/pack("c",hex($1))/ge;
|
||||||
|
|
||||||
|
# Associate key and value
|
||||||
|
$in{$key} .= "\0" if (defined($in{$key})); # \0 is the multiple separator
|
||||||
|
$in{$key} .= $val;
|
||||||
|
}
|
||||||
|
|
||||||
|
} elsif ($ENV{'CONTENT_TYPE'} =~ m#^multipart/form-data#) {
|
||||||
|
# for efficiency, compile multipart code only if needed
|
||||||
|
$errflag = !(eval <<'END_MULTIPART');
|
||||||
|
|
||||||
|
local ($buf, $boundary, $head, @heads, $cd, $ct, $fname, $ctype, $blen);
|
||||||
|
local ($bpos, $lpos, $left, $amt, $fn, $ser);
|
||||||
|
local ($bufsize, $maxbound, $writefiles) =
|
||||||
|
($cgi_lib'bufsize, $cgi_lib'maxbound, $cgi_lib'writefiles);
|
||||||
|
|
||||||
|
|
||||||
|
# The following lines exist solely to eliminate spurious warning messages
|
||||||
|
$buf = '';
|
||||||
|
|
||||||
|
($boundary) = $type =~ /boundary="([^"]+)"/; #"; # find boundary
|
||||||
|
($boundary) = $type =~ /boundary=(\S+)/ unless $boundary;
|
||||||
|
&CgiDie ("Boundary not provided: probably a bug in your server")
|
||||||
|
unless $boundary;
|
||||||
|
$boundary = "--" . $boundary;
|
||||||
|
$blen = length ($boundary);
|
||||||
|
|
||||||
|
if ($ENV{'REQUEST_METHOD'} ne 'POST') {
|
||||||
|
&CgiDie("Invalid request method for multipart/form-data: $meth\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($writefiles) {
|
||||||
|
local($me);
|
||||||
|
stat ($writefiles);
|
||||||
|
$writefiles = "/tmp" unless -d _ && -w _;
|
||||||
|
# ($me) = $0 =~ m#([^/]*)$#;
|
||||||
|
$writefiles .= "/$cgi_lib'filepre";
|
||||||
|
}
|
||||||
|
|
||||||
|
# read in the data and split into parts:
|
||||||
|
# put headers in @in and data in %in
|
||||||
|
# General algorithm:
|
||||||
|
# There are two dividers: the border and the '\r\n\r\n' between
|
||||||
|
# header and body. Iterate between searching for these
|
||||||
|
# Retain a buffer of size(bufsize+maxbound); the latter part is
|
||||||
|
# to ensure that dividers don't get lost by wrapping between two bufs
|
||||||
|
# Look for a divider in the current batch. If not found, then
|
||||||
|
# save all of bufsize, move the maxbound extra buffer to the front of
|
||||||
|
# the buffer, and read in a new bufsize bytes. If a divider is found,
|
||||||
|
# save everything up to the divider. Then empty the buffer of everything
|
||||||
|
# up to the end of the divider. Refill buffer to bufsize+maxbound
|
||||||
|
# Note slightly odd organization. Code before BODY: really goes with
|
||||||
|
# code following HEAD:, but is put first to 'pre-fill' buffers. BODY:
|
||||||
|
# is placed before HEAD: because we first need to discard any 'preface,'
|
||||||
|
# which would be analagous to a body without a preceeding head.
|
||||||
|
|
||||||
|
$left = $len;
|
||||||
|
PART: # find each part of the multi-part while reading data
|
||||||
|
while (1) {
|
||||||
|
die $@ if $errflag;
|
||||||
|
|
||||||
|
$amt = ($left > $bufsize+$maxbound-length($buf)
|
||||||
|
? $bufsize+$maxbound-length($buf): $left);
|
||||||
|
$errflag = (($got = read(STDIN, $buf, $amt, length($buf))) != $amt);
|
||||||
|
die "Short Read: wanted $amt, got $got\n" if $errflag;
|
||||||
|
$left -= $amt;
|
||||||
|
|
||||||
|
$in{$name} .= "\0" if defined $in{$name};
|
||||||
|
$in{$name} .= $fn if $fn;
|
||||||
|
|
||||||
|
$name=~/([-\w]+)/; # This allows $insfn{$name} to be untainted
|
||||||
|
if (defined $1) {
|
||||||
|
$insfn{$1} .= "\0" if defined $insfn{$1};
|
||||||
|
$insfn{$1} .= $fn if $fn;
|
||||||
|
}
|
||||||
|
|
||||||
|
BODY:
|
||||||
|
while (($bpos = index($buf, $boundary)) == -1) {
|
||||||
|
if ($left == 0 && $buf eq '') {
|
||||||
|
foreach $value (values %insfn) {
|
||||||
|
unlink(split("\0",$value));
|
||||||
|
}
|
||||||
|
&CgiDie("cgi-lib.pl: reached end of input while seeking boundary " .
|
||||||
|
"of multipart. Format of CGI input is wrong.\n");
|
||||||
|
}
|
||||||
|
die $@ if $errflag;
|
||||||
|
if ($name) { # if no $name, then it's the prologue -- discard
|
||||||
|
if ($fn) { print FILE substr($buf, 0, $bufsize); }
|
||||||
|
else { $in{$name} .= substr($buf, 0, $bufsize); }
|
||||||
|
}
|
||||||
|
$buf = substr($buf, $bufsize);
|
||||||
|
$amt = ($left > $bufsize ? $bufsize : $left); #$maxbound==length($buf);
|
||||||
|
$errflag = (($got = read(STDIN, $buf, $amt, length($buf))) != $amt);
|
||||||
|
die "Short Read: wanted $amt, got $got\n" if $errflag;
|
||||||
|
$left -= $amt;
|
||||||
|
}
|
||||||
|
if (defined $name) { # if no $name, then it's the prologue -- discard
|
||||||
|
if ($fn) { print FILE substr($buf, 0, $bpos-2); }
|
||||||
|
else { $in {$name} .= substr($buf, 0, $bpos-2); } # kill last \r\n
|
||||||
|
}
|
||||||
|
close (FILE);
|
||||||
|
last PART if substr($buf, $bpos + $blen, 2) eq "--";
|
||||||
|
substr($buf, 0, $bpos+$blen+2) = '';
|
||||||
|
$amt = ($left > $bufsize+$maxbound-length($buf)
|
||||||
|
? $bufsize+$maxbound-length($buf) : $left);
|
||||||
|
$errflag = (($got = read(STDIN, $buf, $amt, length($buf))) != $amt);
|
||||||
|
die "Short Read: wanted $amt, got $got\n" if $errflag;
|
||||||
|
$left -= $amt;
|
||||||
|
|
||||||
|
|
||||||
|
undef $head; undef $fn;
|
||||||
|
HEAD:
|
||||||
|
while (($lpos = index($buf, "\r\n\r\n")) == -1) {
|
||||||
|
if ($left == 0 && $buf eq '') {
|
||||||
|
foreach $value (values %insfn) {
|
||||||
|
unlink(split("\0",$value));
|
||||||
|
}
|
||||||
|
&CgiDie("cgi-lib: reached end of input while seeking end of " .
|
||||||
|
"headers. Format of CGI input is wrong.\n$buf");
|
||||||
|
}
|
||||||
|
die $@ if $errflag;
|
||||||
|
$head .= substr($buf, 0, $bufsize);
|
||||||
|
$buf = substr($buf, $bufsize);
|
||||||
|
$amt = ($left > $bufsize ? $bufsize : $left); #$maxbound==length($buf);
|
||||||
|
$errflag = (($got = read(STDIN, $buf, $amt, length($buf))) != $amt);
|
||||||
|
die "Short Read: wanted $amt, got $got\n" if $errflag;
|
||||||
|
$left -= $amt;
|
||||||
|
}
|
||||||
|
$head .= substr($buf, 0, $lpos+2);
|
||||||
|
push (@in, $head);
|
||||||
|
@heads = split("\r\n", $head);
|
||||||
|
($cd) = grep (/^\s*Content-Disposition:/i, @heads);
|
||||||
|
($ct) = grep (/^\s*Content-Type:/i, @heads);
|
||||||
|
|
||||||
|
($name) = $cd =~ /\bname="([^"]+)"/i; #";
|
||||||
|
($name) = $cd =~ /\bname=([^\s:;]+)/i unless defined $name;
|
||||||
|
|
||||||
|
($fname) = $cd =~ /\bfilename="([^"]*)"/i; #"; # filename can be null-str
|
||||||
|
($fname) = $cd =~ /\bfilename=([^\s:;]+)/i unless defined $fname;
|
||||||
|
$incfn{$name} .= (defined $in{$name} ? "\0" : "") .
|
||||||
|
(defined $fname ? $fname : "");
|
||||||
|
|
||||||
|
($ctype) = $ct =~ /^\s*Content-type:\s*"([^"]+)"/i; #";
|
||||||
|
($ctype) = $ct =~ /^\s*Content-Type:\s*([^\s:;]+)/i unless defined $ctype;
|
||||||
|
$inct{$name} .= (defined $in{$name} ? "\0" : "") . $ctype;
|
||||||
|
|
||||||
|
if ($writefiles && defined $fname) {
|
||||||
|
$ser++;
|
||||||
|
$fn = $writefiles . ".$$.$ser";
|
||||||
|
open (FILE, ">$fn") || &CgiDie("Couldn't open $fn\n");
|
||||||
|
binmode (FILE); # write files accurately
|
||||||
|
}
|
||||||
|
substr($buf, 0, $lpos+4) = '';
|
||||||
|
undef $fname;
|
||||||
|
undef $ctype;
|
||||||
|
}
|
||||||
|
|
||||||
|
1;
|
||||||
|
END_MULTIPART
|
||||||
|
if ($errflag) {
|
||||||
|
local ($errmsg, $value);
|
||||||
|
$errmsg = $@ || $errflag;
|
||||||
|
foreach $value (values %insfn) {
|
||||||
|
unlink(split("\0",$value));
|
||||||
|
}
|
||||||
|
&CgiDie($errmsg);
|
||||||
|
} else {
|
||||||
|
# everything's ok.
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
&CgiDie("cgi-lib.pl: Unknown Content-type: $ENV{'CONTENT_TYPE'}\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
# no-ops to avoid warnings
|
||||||
|
$insfn = $insfn;
|
||||||
|
$incfn = $incfn;
|
||||||
|
$inct = $inct;
|
||||||
|
|
||||||
|
$^W = $perlwarn;
|
||||||
|
|
||||||
|
return ($errflag ? undef : scalar(@in));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# PrintHeader
|
||||||
|
# Returns the magic line which tells WWW that we're an HTML document
|
||||||
|
|
||||||
|
sub PrintHeader {
|
||||||
|
return "Content-type: text/html\n\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# HtmlTop
|
||||||
|
# Returns the <head> of a document and the beginning of the body
|
||||||
|
# with the title and a body <h1> header as specified by the parameter
|
||||||
|
|
||||||
|
sub HtmlTop
|
||||||
|
{
|
||||||
|
local ($title) = @_;
|
||||||
|
|
||||||
|
return <<END_OF_TEXT;
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>$title</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>$title</h1>
|
||||||
|
END_OF_TEXT
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# HtmlBot
|
||||||
|
# Returns the </body>, </html> codes for the bottom of every HTML page
|
||||||
|
|
||||||
|
sub HtmlBot
|
||||||
|
{
|
||||||
|
return "</body>\n</html>\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# SplitParam
|
||||||
|
# Splits a multi-valued parameter into a list of the constituent parameters
|
||||||
|
|
||||||
|
sub SplitParam
|
||||||
|
{
|
||||||
|
local ($param) = @_;
|
||||||
|
local (@params) = split ("\0", $param);
|
||||||
|
return (wantarray ? @params : $params[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# MethGet
|
||||||
|
# Return true if this cgi call was using the GET request, false otherwise
|
||||||
|
|
||||||
|
sub MethGet {
|
||||||
|
return (defined $ENV{'REQUEST_METHOD'} && $ENV{'REQUEST_METHOD'} eq "GET");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# MethPost
|
||||||
|
# Return true if this cgi call was using the POST request, false otherwise
|
||||||
|
|
||||||
|
sub MethPost {
|
||||||
|
return (defined $ENV{'REQUEST_METHOD'} && $ENV{'REQUEST_METHOD'} eq "POST");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# MyBaseUrl
|
||||||
|
# Returns the base URL to the script (i.e., no extra path or query string)
|
||||||
|
sub MyBaseUrl {
|
||||||
|
local ($ret, $perlwarn);
|
||||||
|
$perlwarn = $^W; $^W = 0;
|
||||||
|
$ret = 'http://' . $ENV{'SERVER_NAME'} .
|
||||||
|
($ENV{'SERVER_PORT'} != 80 ? ":$ENV{'SERVER_PORT'}" : '') .
|
||||||
|
$ENV{'SCRIPT_NAME'};
|
||||||
|
$^W = $perlwarn;
|
||||||
|
return $ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# MyFullUrl
|
||||||
|
# Returns the full URL to the script (i.e., with extra path or query string)
|
||||||
|
sub MyFullUrl {
|
||||||
|
local ($ret, $perlwarn);
|
||||||
|
$perlwarn = $^W; $^W = 0;
|
||||||
|
$ret = 'http://' . $ENV{'SERVER_NAME'} .
|
||||||
|
($ENV{'SERVER_PORT'} != 80 ? ":$ENV{'SERVER_PORT'}" : '') .
|
||||||
|
$ENV{'SCRIPT_NAME'} . $ENV{'PATH_INFO'} .
|
||||||
|
(length ($ENV{'QUERY_STRING'}) ? "?$ENV{'QUERY_STRING'}" : '');
|
||||||
|
$^W = $perlwarn;
|
||||||
|
return $ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# MyURL
|
||||||
|
# Returns the base URL to the script (i.e., no extra path or query string)
|
||||||
|
# This is obsolete and will be removed in later versions
|
||||||
|
sub MyURL {
|
||||||
|
return &MyBaseUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# CgiError
|
||||||
|
# Prints out an error message which which containes appropriate headers,
|
||||||
|
# markup, etcetera.
|
||||||
|
# Parameters:
|
||||||
|
# If no parameters, gives a generic error message
|
||||||
|
# Otherwise, the first parameter will be the title and the rest will
|
||||||
|
# be given as different paragraphs of the body
|
||||||
|
|
||||||
|
sub CgiError {
|
||||||
|
local (@msg) = @_;
|
||||||
|
local ($i,$name);
|
||||||
|
|
||||||
|
if (!@msg) {
|
||||||
|
$name = &MyFullUrl;
|
||||||
|
@msg = ("Error: script $name encountered fatal error\n");
|
||||||
|
};
|
||||||
|
|
||||||
|
if (!$cgi_lib'headerout) { #')
|
||||||
|
print &PrintHeader;
|
||||||
|
print "<html>\n<head>\n<title>$msg[0]</title>\n</head>\n<body>\n";
|
||||||
|
}
|
||||||
|
print "<h1>$msg[0]</h1>\n";
|
||||||
|
foreach $i (1 .. $#msg) {
|
||||||
|
print "<p>$msg[$i]</p>\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
$cgi_lib'headerout++;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# CgiDie
|
||||||
|
# Identical to CgiError, but also quits with the passed error message.
|
||||||
|
|
||||||
|
sub CgiDie {
|
||||||
|
local (@msg) = @_;
|
||||||
|
&CgiError (@msg);
|
||||||
|
die @msg;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# PrintVariables
|
||||||
|
# Nicely formats variables. Three calling options:
|
||||||
|
# A non-null associative array - prints the items in that array
|
||||||
|
# A type-glob - prints the items in the associated assoc array
|
||||||
|
# nothing - defaults to use %in
|
||||||
|
# Typical use: &PrintVariables()
|
||||||
|
|
||||||
|
sub PrintVariables {
|
||||||
|
local (*in) = @_ if @_ == 1;
|
||||||
|
local (%in) = @_ if @_ > 1;
|
||||||
|
local ($out, $key, $output);
|
||||||
|
|
||||||
|
$output = "\n<dl compact>\n";
|
||||||
|
foreach $key (sort keys(%in)) {
|
||||||
|
foreach (split("\0", $in{$key})) {
|
||||||
|
($out = $_) =~ s/\n/<br>\n/g;
|
||||||
|
$output .= "<dt><b>$key</b>\n <dd>:<i>$out</i>:<br>\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$output .= "</dl>\n";
|
||||||
|
|
||||||
|
return $output;
|
||||||
|
}
|
||||||
|
|
||||||
|
# PrintEnv
|
||||||
|
# Nicely formats all environment variables and returns HTML string
|
||||||
|
sub PrintEnv {
|
||||||
|
&PrintVariables(*ENV);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# The following lines exist only to avoid warning messages
|
||||||
|
$cgi_lib'writefiles = $cgi_lib'writefiles;
|
||||||
|
$cgi_lib'bufsize = $cgi_lib'bufsize ;
|
||||||
|
$cgi_lib'maxbound = $cgi_lib'maxbound;
|
||||||
|
$cgi_lib'version = $cgi_lib'version;
|
||||||
|
$cgi_lib'filepre = $cgi_lib'filepre;
|
||||||
|
|
||||||
|
1; #return true
|
||||||
|
|
450
vim_plugins_src/cscope-15.7a/contrib/webcscope/cscope
Normal file
450
vim_plugins_src/cscope-15.7a/contrib/webcscope/cscope
Normal file
|
@ -0,0 +1,450 @@
|
||||||
|
#!/usr/bin/perl
|
||||||
|
|
||||||
|
# $Id: cscope,v 1.2 2007/01/07 12:34:01 broeker Exp $
|
||||||
|
#
|
||||||
|
# WebCscope: A web interface to the cscope application
|
||||||
|
# Copyright (C) 2001, Ragho Mahalingam <ragho@mahalingam.com>
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or
|
||||||
|
# modify it under the terms of the GNU Lesser General Public
|
||||||
|
# License as published by the Free Software Foundation; either
|
||||||
|
# version 2.1 of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
# General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public
|
||||||
|
# License along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
#
|
||||||
|
# Change History:
|
||||||
|
#
|
||||||
|
# $Log: cscope,v $
|
||||||
|
# Revision 1.2 2007/01/07 12:34:01 broeker
|
||||||
|
# Direct attention to security issues with webcscope.
|
||||||
|
#
|
||||||
|
# Revision 1.1 2001/06/29 14:20:16 petr
|
||||||
|
# Added webcscope to contribs.
|
||||||
|
#
|
||||||
|
# Revision 1.3.4.1 2001/02/05 15:14:34 rmahalin
|
||||||
|
# initial release with some bug fixes
|
||||||
|
#
|
||||||
|
# Revision 1.3.3.1 2001/01/22 22:21:23 rmahalin
|
||||||
|
# added multi-database support
|
||||||
|
# fixed cookie support for trivial functions; removed global trivials
|
||||||
|
# added syntax highlighting for files displayed on browser
|
||||||
|
#
|
||||||
|
# Revision 1.3.1.1 2001/01/11 22:17:30 rmahalin
|
||||||
|
# added direct download with mime-type 'text/c-source' and made cosmetic changes
|
||||||
|
#
|
||||||
|
# Revision 1.3 2001/01/11 21:36:39 rmahalin
|
||||||
|
# *** empty log message ***
|
||||||
|
#
|
||||||
|
# Revision 1.2 2001/01/11 21:34:13 rmahalin
|
||||||
|
# incorporated draft feedback changes
|
||||||
|
#
|
||||||
|
# Revision 1.1 2001/01/11 21:19:32 rmahalin
|
||||||
|
# Initial revision
|
||||||
|
#
|
||||||
|
|
||||||
|
require "cgi-lib.pl";
|
||||||
|
|
||||||
|
# current code version being used
|
||||||
|
$version = "iSOS 2.5/int16";
|
||||||
|
# full path to the cscope binary
|
||||||
|
$cscopecmd = "/usr/global/bin/cscope";
|
||||||
|
# cscope working directory, where all the in/out and db files are stored
|
||||||
|
$cscopedir = "/usr/local/cscope";
|
||||||
|
# trivial functions not to display, one per line in the trivs file
|
||||||
|
$trivs = "/usr/local/htdocs/cscope/trivials";
|
||||||
|
# temporary storage directory
|
||||||
|
$tmpdir = "/tmp";
|
||||||
|
$tmpinfile = $tmpdir . "/cscopein.$$";
|
||||||
|
$tmpoutfile = $tmpdir . "/cscopeout.$$";
|
||||||
|
$showfile = $tmpdir . "/showfile.$$";
|
||||||
|
# C syntax highlighting application or uncomment the line beneath to just cat
|
||||||
|
#$hiliter = "/bin/cat";
|
||||||
|
$hiliter = "/usr/local/cgi-bin/cscope/hilite";
|
||||||
|
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday) = gmtime(time+1000000);
|
||||||
|
$cookie_exp = sprintf("%s %02d-%s-%s %02d:%02d:%02d GMT", $wday, $mday, $mon, $year, $hour, $min, $sec);
|
||||||
|
|
||||||
|
# standard images, from the apache distribution
|
||||||
|
$img{openfile} = "/icons/folder.gif";
|
||||||
|
$img{downloadfile} = "/icons/folder.open.gif";
|
||||||
|
$img{csymbol} = "/icons/c.gif";
|
||||||
|
$img{upfunc} = "/icons/up.gif";
|
||||||
|
$img{downfunc} = "/icons/down.gif";
|
||||||
|
$img{globalfunc} = "/icons/world2.gif";
|
||||||
|
$img{trashfunc} = "/icons/bomb.gif";
|
||||||
|
$img{untrashfunc} = "/icons/back.gif";
|
||||||
|
$img{back} = "/icons/left.gif";
|
||||||
|
|
||||||
|
# feedback details
|
||||||
|
$comment{name} = "Ragho Mahalingam";
|
||||||
|
$comment{email} = "ragho\@mahalingam.com";
|
||||||
|
|
||||||
|
# operations allowed
|
||||||
|
@oper = ( "Find this C symbol",
|
||||||
|
"Find this global symbol",
|
||||||
|
"Find functions called by",
|
||||||
|
"Find functions calling",
|
||||||
|
"Find this text string",
|
||||||
|
"---------------------",
|
||||||
|
"Find this egrep pattern",
|
||||||
|
"Find this file",
|
||||||
|
"Find files #including this file" );
|
||||||
|
|
||||||
|
# -- removed global trivial function list in favor of customized trivials
|
||||||
|
#open(TRIVIAL_FUNC, $trivs);
|
||||||
|
#@trivial = <TRIVIAL_FUNC>;
|
||||||
|
#close(TRIVIAL_FUNC);
|
||||||
|
@trivial = ();
|
||||||
|
|
||||||
|
MAIN:
|
||||||
|
|
||||||
|
{
|
||||||
|
$starttime = time;
|
||||||
|
|
||||||
|
if (&ReadParse(*input)) {
|
||||||
|
&ProcessCookie;
|
||||||
|
&ProcessForm;
|
||||||
|
} else {
|
||||||
|
&PrintForm;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sub ProcessCookie {
|
||||||
|
|
||||||
|
if ( defined $ENV{HTTP_COOKIE} ) {
|
||||||
|
($var, $val) = split('=',$ENV{HTTP_COOKIE});
|
||||||
|
$Cookie{$var} = $val;
|
||||||
|
if ( defined $Cookie{'cs-trivf'} ) {
|
||||||
|
# do nothing, else initialize it to null
|
||||||
|
} else {
|
||||||
|
$Cookie{'cs-trivf'} = "defined";
|
||||||
|
}
|
||||||
|
@loc_trivial = split(',', $Cookie{'cs-trivf'});
|
||||||
|
@trivial = ( @loc_trivial );
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sub ProcessTrashForm {
|
||||||
|
|
||||||
|
if ( defined $input{'trash'} ) {
|
||||||
|
@trivial = (@trivial, $input{'func'});
|
||||||
|
} else {
|
||||||
|
@tmptriv = ();
|
||||||
|
for ($i=0; $i <= $#trivial; $i++) {
|
||||||
|
$fhash = unpack('H*', $input{'func'});
|
||||||
|
$thash = unpack('H*', $trivial[$i]);
|
||||||
|
if ( $fhash != $thash ) {
|
||||||
|
@tmptriv = ( @tmptriv, $trivial[$i] );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@trivial = @tmptriv;
|
||||||
|
}
|
||||||
|
|
||||||
|
$Cookie{'cs-trivf'} = join(',',@trivial);
|
||||||
|
|
||||||
|
print "Content-type: text/html\n";
|
||||||
|
print "Set-Cookie: cs-trivf=$Cookie{'cs-trivf'}; path=$ENV{SCRIPT_NAME}; expires $cookie_exp\n\n";
|
||||||
|
print &HtmlTop("Your WebCScope Trivial Functions");
|
||||||
|
print "<ul>";
|
||||||
|
for ($i=0; $i <= $#trivial; $i++) {
|
||||||
|
print "<li><a href=\"$ENV{SCRIPT_NAME}?untrash=&func=$trivial[$i]\"><img src=$img{untrashfunc} border=0></a> $trivial[$i]";
|
||||||
|
}
|
||||||
|
print "</ul><hr>\n";
|
||||||
|
print "Click <a href=\"#\" onClick=\"history.back();\"><img src=$img{back} border=0></a> to go back.\n";
|
||||||
|
print &HtmlBot;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
sub ProcessForm {
|
||||||
|
|
||||||
|
chdir $cscopedir;
|
||||||
|
opendir(DIRLIST,$cscopedir);
|
||||||
|
@dirlist = readdir(DIRLIST);
|
||||||
|
closedir(DIRLIST);
|
||||||
|
|
||||||
|
if ( $input{'db'} eq "all" ) {
|
||||||
|
@csdirs = ();
|
||||||
|
for ($i=0; $i <= $#dirlist; $i++ ) {
|
||||||
|
if ( ($dirlist[$i] ne ".") && ($dirlist[$i] ne "..") && ( -d $dirlist[$i] ) ) {
|
||||||
|
@csdirs = ( @csdirs, $dirlist[$i] );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
@csdirs = ( $input{'db'} );
|
||||||
|
}
|
||||||
|
|
||||||
|
$op = $input{'op'};
|
||||||
|
$arg = $input{'arg'};
|
||||||
|
$shtriv = $input{'triv'};
|
||||||
|
$db = $input{'db'};
|
||||||
|
|
||||||
|
if ( defined $input{'fshow'} ) { &ShowFileForm; exit; }
|
||||||
|
if ( defined $input{'load'} ) { &DownloadFileForm; exit; }
|
||||||
|
if ( (defined $input{'trash'}) || (defined $input{'untrash'}) ) {
|
||||||
|
&ProcessTrashForm; exit; }
|
||||||
|
|
||||||
|
print &PrintHeader;
|
||||||
|
print &HtmlTop ("WebCscope");
|
||||||
|
print <<ENDOFHDR;
|
||||||
|
<h3>Instructions</h3><p>
|
||||||
|
<ul>
|
||||||
|
<li><img src=$img{csymbol}> will find a symbol with this name<br>
|
||||||
|
<li><img src=$img{upfunc}> will find functions <i>calling</i> this function<br>
|
||||||
|
<li><img src=$img{downfunc}> will find functions <i>called</i> by this
|
||||||
|
function<br>
|
||||||
|
<li><img src=$img{globalfunc}> will locate a global definition of this name<br>
|
||||||
|
<li><img src=$img{openfile}> will display this file and highlight
|
||||||
|
the fragment line<br>
|
||||||
|
<li><img src=$img{downloadfile}> will download this file with mimetype "text/c-source"<br>
|
||||||
|
<li><img src=$img{trashfunc}> will add this symbol/function to your trivial list<br>
|
||||||
|
</ul>
|
||||||
|
<p><hr>
|
||||||
|
ENDOFHDR
|
||||||
|
|
||||||
|
foreach $index ( 0 .. $#csdirs ) {
|
||||||
|
|
||||||
|
unlink $tmpinfile, $tmpoutfile;
|
||||||
|
open(CSCOPEIN, ">$tmpinfile");
|
||||||
|
print CSCOPEIN "$op$arg\n";
|
||||||
|
print CSCOPEIN "exit\n";
|
||||||
|
close(CSCOPEIN);
|
||||||
|
|
||||||
|
$dbdir = $cscopedir . "/" . $csdirs[$index];
|
||||||
|
chdir($dbdir);
|
||||||
|
|
||||||
|
$syscmd = "cd $dbdir; $cscopecmd -d -l < $tmpinfile > $tmpoutfile;";
|
||||||
|
system($syscmd);
|
||||||
|
|
||||||
|
$count = 1;
|
||||||
|
open(CSCOPEIN, "$tmpoutfile");
|
||||||
|
|
||||||
|
$line = <CSCOPEIN>;
|
||||||
|
@temp = split(' ',$line);
|
||||||
|
$numresult = $temp[2];
|
||||||
|
|
||||||
|
print <<ENDOFHDRs;
|
||||||
|
<h2>Search Results from <b>$csdirs[$index]</b></h2>
|
||||||
|
<font size=+1>$oper[$op]: <b>$arg</b></font><br>
|
||||||
|
Matches: $numresult<p>
|
||||||
|
<table border=1 cellpadding=2 cellspacing=2>
|
||||||
|
<tr><td><b>Num</b></td><td><b>File</b></td><td><b>Function</b></td>
|
||||||
|
<td><b>Line</b></td><td><b>Fragment</b></td></tr>
|
||||||
|
ENDOFHDRs
|
||||||
|
|
||||||
|
$trivs_rm = 0;
|
||||||
|
|
||||||
|
for ($i=0; $i < $numresult; $i++ ) {
|
||||||
|
$line = <CSCOPEIN>;
|
||||||
|
@fields = split(' ',$line);
|
||||||
|
$file = shift @fields;
|
||||||
|
$fshowfile = $file;
|
||||||
|
$func = shift @fields;
|
||||||
|
$lnum = shift @fields;
|
||||||
|
@filef = split('/',$file);
|
||||||
|
$file = $filef[$#filef];
|
||||||
|
$frag = join(' ',@fields);
|
||||||
|
|
||||||
|
if ( ! $shtriv ) {
|
||||||
|
for ( $j=0; $j <= $#trivial; $j++ )
|
||||||
|
{
|
||||||
|
$fhash = unpack('H*', $func);
|
||||||
|
$thash = unpack('H*', $trivial[$j]);
|
||||||
|
if ( $fhash == $thash ) { $trivs_rm++; goto done; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( $func ne "<global>" && $func ne "<unknown>" ) {
|
||||||
|
print <<ENDOFBODY1;
|
||||||
|
<tr><td>$count</td>
|
||||||
|
<td><a href="$ENV{SCRIPT_NAME}?fshow=1&fshowfile=$fshowfile&line=$lnum&db=$db">
|
||||||
|
<img src=$img{openfile} border=0></a> $file
|
||||||
|
<a href="$ENV{SCRIPT_NAME}?load=1&file=$fshowfile&db=$db">
|
||||||
|
<img src=$img{downloadfile} border=0></a>
|
||||||
|
</td>
|
||||||
|
<td><a href="$ENV{SCRIPT_NAME}?op=0&triv=$shtriv&arg=$func&db=$db">
|
||||||
|
<img src=$img{csymbol} border=0></a>
|
||||||
|
<a href="$ENV{SCRIPT_NAME}?op=3&triv=$shtriv&arg=$func&db=$db">
|
||||||
|
<img src=$img{upfunc} border=0></a>
|
||||||
|
$func
|
||||||
|
<a href="$ENV{SCRIPT_NAME}?op=2&triv=$shtriv&arg=$func&db=$db">
|
||||||
|
<img src=$img{downfunc} border=0></a>
|
||||||
|
<a href="$ENV{SCRIPT_NAME}?op=1&triv=$shtriv&arg=$func&db=$db">
|
||||||
|
<img src=$img{globalfunc} border=0></a>
|
||||||
|
<a href="$ENV{SCRIPT_NAME}?trash=&func=$func&db=$db">
|
||||||
|
<img src=$img{trashfunc} border=0></a>
|
||||||
|
</td>
|
||||||
|
<td>$lnum</td>
|
||||||
|
<td>$frag</td></tr>
|
||||||
|
ENDOFBODY1
|
||||||
|
|
||||||
|
} else {
|
||||||
|
$func =~ tr/<>/[]/;
|
||||||
|
print <<ENDOFBODY2;
|
||||||
|
<tr><td>$count</td>
|
||||||
|
<td><a href="$ENV{SCRIPT_NAME}?fshow=1&fshowfile=$fshowfile&line=$lnum&db=$db">
|
||||||
|
<img src=$img{openfile} border=0></a> $file
|
||||||
|
<a href="$ENV{SCRIPT_NAME}?load=1&file=$fshowfile&db=$db">
|
||||||
|
<img src=$img{downloadfile} border=0></a>
|
||||||
|
</td>
|
||||||
|
<td>$func</td>
|
||||||
|
<td>$lnum</td>
|
||||||
|
<td><$frag</td></tr>
|
||||||
|
ENDOFBODY2
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
$count++;
|
||||||
|
done:
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
close(CSCOPEIN);
|
||||||
|
print "</table>\n";
|
||||||
|
print "<br>Eliminated $trivs_rm line item(s) as trivial functions<p><hr>\n";
|
||||||
|
unlink $tmpinfile, $tmpoutfile;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
print &OperationTime;
|
||||||
|
print &Feedback;
|
||||||
|
print &HtmlBot;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
sub DownloadFileForm {
|
||||||
|
$file = $input{'file'};
|
||||||
|
print "Content-type: text/c-source\n\n";
|
||||||
|
open(SHOWFILE, $file);
|
||||||
|
while (<SHOWFILE>) { print; }
|
||||||
|
close(SHOWFILE);
|
||||||
|
}
|
||||||
|
|
||||||
|
sub ShowFileForm {
|
||||||
|
|
||||||
|
$file = $input{'fshowfile'};
|
||||||
|
$lnum = $input{'line'};
|
||||||
|
|
||||||
|
print &PrintHeader;
|
||||||
|
print &HtmlTop ("WebCscope");
|
||||||
|
print "<b>Note</b>: Click <a href=#ref><img src=$img{downfunc} border=0></a> to go to the reference line<p><hr>\n";
|
||||||
|
print "<hr>";
|
||||||
|
|
||||||
|
unlink $showfile;
|
||||||
|
system("$hiliter $file > $showfile");
|
||||||
|
open(SHOWFILE, $showfile);
|
||||||
|
|
||||||
|
$curline = 1;
|
||||||
|
while ( <SHOWFILE> ) {
|
||||||
|
$line = $_;
|
||||||
|
if ( $curline == $lnum ) {
|
||||||
|
print "<a name=ref><blink>$line</blink>";
|
||||||
|
} else {
|
||||||
|
print $line;
|
||||||
|
}
|
||||||
|
$curline++;
|
||||||
|
}
|
||||||
|
|
||||||
|
close (SHOWFILE);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
print &OperationTime;
|
||||||
|
print &Feedback;
|
||||||
|
print &HtmlBot;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub PrintForm {
|
||||||
|
|
||||||
|
chdir $cscopedir;
|
||||||
|
opendir(DIRLIST,$cscopedir);
|
||||||
|
@dirlist = readdir(DIRLIST);
|
||||||
|
closedir(DIRLIST);
|
||||||
|
|
||||||
|
@csdirs = ();
|
||||||
|
for ($i=0; $i <= $#dirlist; $i++ ) {
|
||||||
|
if ( ($dirlist[$i] ne ".") && ($dirlist[$i] ne "..") && ( -d $dirlist[$i] ) ) {
|
||||||
|
@csdirs = ( @csdirs, $dirlist[$i] );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
print &PrintHeader;
|
||||||
|
print &HtmlTop ("Web-CScope");
|
||||||
|
|
||||||
|
print <<ENDOFTEXTA;
|
||||||
|
<p style="color:red">Be aware that this webfrontend is insecure and allows viewing ALL apache readable files, including your configuration!</p>
|
||||||
|
Select an operation below and enter a symbol, function or text to search in
|
||||||
|
the database. The active version is $version. Input is case-sensitive,
|
||||||
|
so if your search returns no results, check the case and the symbol name.<hr>
|
||||||
|
<form method="get" action="$ENV{SCRIPT_NAME}">
|
||||||
|
<table border=0 cellpadding=2 cellspacing=2>
|
||||||
|
<tr>
|
||||||
|
<td>Operation:</td>
|
||||||
|
<td>
|
||||||
|
<select name="op">
|
||||||
|
ENDOFTEXTA
|
||||||
|
|
||||||
|
foreach $opi ( 0 .. $#oper ) {
|
||||||
|
print "<option value=$opi>$oper[$opi]";
|
||||||
|
}
|
||||||
|
|
||||||
|
print <<ENDOFTEXTB;
|
||||||
|
</select>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>CScope Database:</td>
|
||||||
|
<td>
|
||||||
|
<select name="db">
|
||||||
|
<option selected value="all">All Databases
|
||||||
|
ENDOFTEXTB
|
||||||
|
|
||||||
|
for ($i=0; $i <= $#csdirs; $i++) {
|
||||||
|
print " <option value=\"$csdirs[$i]\">$csdirs[$i]\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
print <<ENDOFTEXT2;
|
||||||
|
</select>
|
||||||
|
<tr>
|
||||||
|
<td>Symbol, function or text:</td>
|
||||||
|
<td><input name="arg" size=30></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td halign=center>Show trivial functions:
|
||||||
|
<input type=radio name="triv" value=1>Yes
|
||||||
|
<input type=radio name="triv" value=0 checked>No
|
||||||
|
<br><br>
|
||||||
|
<input type="submit" value="Scope It!"></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<hr>
|
||||||
|
</form>
|
||||||
|
ENDOFTEXT2
|
||||||
|
|
||||||
|
print &Feedback;
|
||||||
|
print &HtmlBot;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub Feedback {
|
||||||
|
|
||||||
|
$feedback = "<font size=-1>";
|
||||||
|
$feedback .= '$Id: cscope,v 1.2 2007/01/07 12:34:01 broeker Exp $<br>';
|
||||||
|
$feedback .= "$comment{name}<i><";
|
||||||
|
$feedback .= "<a href=\"mailto:$comment{email}\">";
|
||||||
|
$feedback .= "$comment{email}</a>></i></font>";
|
||||||
|
return $feedback;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub OperationTime {
|
||||||
|
|
||||||
|
$deltime = time - $starttime;
|
||||||
|
return "Operation took $deltime second(s)<br>";
|
||||||
|
|
||||||
|
}
|
360
vim_plugins_src/cscope-15.7a/contrib/webcscope/hilite.c
Normal file
360
vim_plugins_src/cscope-15.7a/contrib/webcscope/hilite.c
Normal file
|
@ -0,0 +1,360 @@
|
||||||
|
/*
|
||||||
|
CopyRight (C) 1999, Dmitry Obukhov, dso@usa.net
|
||||||
|
mailto: dso@usa.net
|
||||||
|
http://www.EmbeddedStuff.com
|
||||||
|
|
||||||
|
----------------------------------------------
|
||||||
|
Last modified 6 Apr 97
|
||||||
|
----------------------------------------------
|
||||||
|
Converts C (C++) source to HTML code fragment
|
||||||
|
with syntax highlighting.
|
||||||
|
Since program written for personal purpose
|
||||||
|
the <TABLE> tags generated. This is optional
|
||||||
|
page format specific thing.
|
||||||
|
|
||||||
|
Usage: CTHM <input_file>. All output is done
|
||||||
|
to STDOUTPUT, error messages to STDERR.
|
||||||
|
For HTML fragment generation:
|
||||||
|
CHTM file.c > file.htm
|
||||||
|
|
||||||
|
- Some input convertion required to use this
|
||||||
|
code as CGI module. Will be done soon.
|
||||||
|
- Optimization required for blocks of EOL
|
||||||
|
comments
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
// ------------------- Decoding status values
|
||||||
|
|
||||||
|
#define START 0
|
||||||
|
#define INLINE 1
|
||||||
|
#define DEFINE 2
|
||||||
|
// ------------------- Decoding Remark
|
||||||
|
#define REM1 20
|
||||||
|
#define REM2 21
|
||||||
|
#define REM_END 22
|
||||||
|
#define REM_STAR 23
|
||||||
|
#define REM_STAR_1 24
|
||||||
|
#define STRING 25 // String is "like" remark
|
||||||
|
|
||||||
|
|
||||||
|
// ------------------- HTML TAG Generation
|
||||||
|
#define ON 1
|
||||||
|
#define OFF 0
|
||||||
|
|
||||||
|
// ------------------- HTML TAG type
|
||||||
|
#define MODE_KEYWORD 0
|
||||||
|
#define MODE_REMARK 2
|
||||||
|
#define MODE_REMARK_EOL 4
|
||||||
|
#define MODE_DEFINE 6
|
||||||
|
#define MODE_STRING 8
|
||||||
|
|
||||||
|
|
||||||
|
int is_delimeter(char c)
|
||||||
|
{
|
||||||
|
int ii=0;
|
||||||
|
char dlms[] =
|
||||||
|
"\t\r\n (){}[]+-*/%\"'&|^~:;<>.,";
|
||||||
|
//--------------------------------
|
||||||
|
while (dlms[ii])
|
||||||
|
{
|
||||||
|
if (c==dlms[ii++]) return 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int is_keyword(char * str)
|
||||||
|
{
|
||||||
|
char * kwords[] =
|
||||||
|
{
|
||||||
|
"asm", "auto",
|
||||||
|
"break", "case",
|
||||||
|
"cdecl", "char",
|
||||||
|
"class", "const",
|
||||||
|
"continue", "default",
|
||||||
|
"delete", "do",
|
||||||
|
"double", "else",
|
||||||
|
"enum", "extern",
|
||||||
|
"far", "float",
|
||||||
|
"for", "friend",
|
||||||
|
"goto", "huge",
|
||||||
|
"if", "inline",
|
||||||
|
"int", "interrupt",
|
||||||
|
"long", "near",
|
||||||
|
"new", "operator",
|
||||||
|
"pascal", "private",
|
||||||
|
"protected", "public",
|
||||||
|
"register", "return",
|
||||||
|
"short", "signed",
|
||||||
|
"sizeof", "static",
|
||||||
|
"struct", "switch",
|
||||||
|
"template", "this",
|
||||||
|
"typedef", "union",
|
||||||
|
"unsigned", "virtual",
|
||||||
|
"void", "volatile",
|
||||||
|
"while", NULL
|
||||||
|
};
|
||||||
|
int ii=0;
|
||||||
|
int jj;
|
||||||
|
int check;
|
||||||
|
|
||||||
|
while (kwords[ii])
|
||||||
|
{
|
||||||
|
jj = 0;
|
||||||
|
check = 1;
|
||||||
|
while (kwords[ii][jj] && check)
|
||||||
|
{
|
||||||
|
if (str[jj] != kwords[ii][jj])
|
||||||
|
{
|
||||||
|
check = 0;
|
||||||
|
}
|
||||||
|
jj++;
|
||||||
|
}
|
||||||
|
if (check) return 1;
|
||||||
|
ii++;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void set_mode(int on_off, int mode)
|
||||||
|
{
|
||||||
|
char * tags[] =
|
||||||
|
{
|
||||||
|
//-------------------- KEYWORD
|
||||||
|
"<strong>",
|
||||||
|
"</strong>",
|
||||||
|
//-------------------- Classic remarks
|
||||||
|
"<font color=\"#336600\">",
|
||||||
|
"</font>",
|
||||||
|
//-------------------- EOL Remarks
|
||||||
|
"<font color=\"#336600\">",
|
||||||
|
"</font>",
|
||||||
|
//-------------------- #DEFINE
|
||||||
|
"<font color=\"#663300\"><strong>",
|
||||||
|
"</strong></font>",
|
||||||
|
//-------------------- "string"
|
||||||
|
"<font color=\"#0000CC\">",
|
||||||
|
"</font>",
|
||||||
|
NULL, NULL
|
||||||
|
};
|
||||||
|
fprintf(stdout,tags[mode + 1 - on_off]);
|
||||||
|
}
|
||||||
|
|
||||||
|
void print_char_html(char c)
|
||||||
|
{
|
||||||
|
switch (c)
|
||||||
|
{
|
||||||
|
case '<':
|
||||||
|
fprintf(stdout,"<");
|
||||||
|
break;
|
||||||
|
case '>':
|
||||||
|
fprintf(stdout,">");
|
||||||
|
break;
|
||||||
|
case '"':
|
||||||
|
fprintf(stdout,""");
|
||||||
|
break;
|
||||||
|
case '&':
|
||||||
|
fprintf(stdout,"&");
|
||||||
|
break;
|
||||||
|
case '|':
|
||||||
|
fprintf(stdout,"¦");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
fprintf(stdout,"%c",c);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
int main(int _argc, char** _argv)
|
||||||
|
{
|
||||||
|
FILE *in, *out;
|
||||||
|
char c;
|
||||||
|
int mode;
|
||||||
|
char buf[80];
|
||||||
|
int bufidx = 0;
|
||||||
|
int progress = 1;
|
||||||
|
int echo;
|
||||||
|
int saved_mode;
|
||||||
|
int kw;
|
||||||
|
char tmpc;
|
||||||
|
char prevc;
|
||||||
|
|
||||||
|
if (_argc < 2)
|
||||||
|
{
|
||||||
|
fprintf(stderr,
|
||||||
|
"USAGE: c2html <file>\n");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if ((in = fopen(_argv[1], "rt")) == NULL)
|
||||||
|
{
|
||||||
|
fprintf(stderr,
|
||||||
|
"Cannot open input file.\n");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
fprintf(stdout, "<pre>");
|
||||||
|
mode = START;
|
||||||
|
|
||||||
|
while (!feof(in) && progress)
|
||||||
|
{
|
||||||
|
echo = 1;
|
||||||
|
prevc = c;
|
||||||
|
c = fgetc(in);
|
||||||
|
|
||||||
|
if (c=='/' && (mode < REM1))
|
||||||
|
{
|
||||||
|
saved_mode = mode;
|
||||||
|
mode = REM1;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (mode)
|
||||||
|
{
|
||||||
|
case REM1:
|
||||||
|
echo = 0;
|
||||||
|
mode = REM2;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case REM2:
|
||||||
|
if (c=='/')
|
||||||
|
{
|
||||||
|
if (saved_mode == DEFINE)
|
||||||
|
{
|
||||||
|
set_mode(OFF, MODE_DEFINE);
|
||||||
|
}
|
||||||
|
mode = REM_END;
|
||||||
|
set_mode(ON, MODE_REMARK_EOL);
|
||||||
|
}
|
||||||
|
else if (c=='*')
|
||||||
|
{
|
||||||
|
if (saved_mode == DEFINE)
|
||||||
|
{
|
||||||
|
set_mode(OFF, MODE_DEFINE);
|
||||||
|
}
|
||||||
|
mode = REM_STAR;
|
||||||
|
set_mode(ON, MODE_REMARK);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
mode = saved_mode;
|
||||||
|
}
|
||||||
|
printf("/");
|
||||||
|
break;
|
||||||
|
|
||||||
|
case REM_END:
|
||||||
|
if (c=='\n')
|
||||||
|
{
|
||||||
|
set_mode(OFF, MODE_REMARK_EOL);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case REM_STAR:
|
||||||
|
if (c=='*')
|
||||||
|
{
|
||||||
|
mode = REM_STAR_1;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case REM_STAR_1:
|
||||||
|
if (c=='/')
|
||||||
|
{
|
||||||
|
mode = INLINE;
|
||||||
|
fprintf(stdout,"/");
|
||||||
|
echo = 0;
|
||||||
|
set_mode(OFF, MODE_REMARK);
|
||||||
|
}
|
||||||
|
else mode = REM_STAR;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case START:
|
||||||
|
if (c=='#')
|
||||||
|
{
|
||||||
|
mode = DEFINE;
|
||||||
|
set_mode(ON, MODE_DEFINE);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
else if (c==' ') break;
|
||||||
|
|
||||||
|
mode = INLINE;
|
||||||
|
// and continue in next case
|
||||||
|
|
||||||
|
case INLINE:
|
||||||
|
if (c=='"' && //
|
||||||
|
prevc != 0x27 && //
|
||||||
|
prevc != '\\') //
|
||||||
|
{
|
||||||
|
set_mode(ON, MODE_STRING);
|
||||||
|
mode = STRING;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case STRING:
|
||||||
|
if (c=='"' && prevc != '\\')
|
||||||
|
{
|
||||||
|
print_char_html('"');
|
||||||
|
set_mode(OFF, MODE_STRING);
|
||||||
|
echo = 0;
|
||||||
|
mode = INLINE;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case DEFINE:
|
||||||
|
if (c=='\n')
|
||||||
|
{
|
||||||
|
set_mode(OFF, MODE_DEFINE);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (echo && //
|
||||||
|
(mode == INLINE || //
|
||||||
|
(mode!=INLINE && //
|
||||||
|
bufidx))) //
|
||||||
|
{
|
||||||
|
buf[bufidx++] = c;
|
||||||
|
buf[bufidx] = 0;
|
||||||
|
if (is_delimeter(c))
|
||||||
|
{
|
||||||
|
kw = 0;
|
||||||
|
if (bufidx>2)
|
||||||
|
{
|
||||||
|
kw = is_keyword(buf);
|
||||||
|
}
|
||||||
|
if (kw)
|
||||||
|
{
|
||||||
|
set_mode(ON, MODE_KEYWORD);
|
||||||
|
}
|
||||||
|
tmpc = buf[bufidx-1];
|
||||||
|
buf[bufidx-1] = 0;
|
||||||
|
fprintf(stdout,"%s",buf);
|
||||||
|
if (kw)
|
||||||
|
{
|
||||||
|
set_mode(OFF, MODE_KEYWORD);
|
||||||
|
}
|
||||||
|
print_char_html(tmpc);
|
||||||
|
bufidx = 0;
|
||||||
|
buf[0] = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (echo) print_char_html(c);
|
||||||
|
|
||||||
|
if (c=='\n' && mode != REM_STAR)
|
||||||
|
{
|
||||||
|
mode = START;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fclose(in);
|
||||||
|
fprintf(stdout,"</pre>\n");
|
||||||
|
fprintf(stdout,
|
||||||
|
"<!-- == Generated by CHTM convertor -->\n");
|
||||||
|
fprintf(stdout,
|
||||||
|
"<!-- == CopyRight (C) 1999, Dmitry Obukhov, dso@usa.net -->\n");
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
|
@ -0,0 +1,10 @@
|
||||||
|
/back.gif/1.3/Fri Jun 29 15:58:08 2001/-kb/
|
||||||
|
/bomb.gif/1.3/Fri Jun 29 15:58:08 2001/-kb/
|
||||||
|
/c.gif/1.3/Fri Jun 29 15:58:08 2001/-kb/
|
||||||
|
/down.gif/1.3/Fri Jun 29 15:58:08 2001/-kb/
|
||||||
|
/folder.gif/1.3/Fri Jun 29 15:58:08 2001/-kb/
|
||||||
|
/folder.open.gif/1.3/Fri Jun 29 15:58:08 2001/-kb/
|
||||||
|
/left.gif/1.3/Fri Jun 29 15:58:08 2001/-kb/
|
||||||
|
/up.gif/1.3/Fri Jun 29 15:58:08 2001/-kb/
|
||||||
|
/world2.gif/1.3/Fri Jun 29 15:58:08 2001/-kb/
|
||||||
|
D
|
|
@ -0,0 +1,9 @@
|
||||||
|
/back.gif////
|
||||||
|
/bomb.gif////
|
||||||
|
/c.gif////
|
||||||
|
/down.gif////
|
||||||
|
/folder.gif////
|
||||||
|
/folder.open.gif////
|
||||||
|
/left.gif////
|
||||||
|
/up.gif////
|
||||||
|
/world2.gif////
|
|
@ -0,0 +1 @@
|
||||||
|
cscope/contrib/webcscope/icons
|
|
@ -0,0 +1 @@
|
||||||
|
:ssh;username=broeker;hostname=cscope.cvs.sourceforge.net:/cvsroot/cscope
|
BIN
vim_plugins_src/cscope-15.7a/contrib/webcscope/icons/back.gif
Normal file
BIN
vim_plugins_src/cscope-15.7a/contrib/webcscope/icons/back.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 216 B |
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue