aboutsummaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/gen_vimdoc.py45
-rw-r--r--scripts/lua2dox.lua34
-rwxr-xr-xscripts/shadacat.py2
-rwxr-xr-xscripts/update_version_stamp.lua7
-rwxr-xr-xscripts/vim-patch.sh10
5 files changed, 44 insertions, 54 deletions
diff --git a/scripts/gen_vimdoc.py b/scripts/gen_vimdoc.py
index 373a58d11e..4d71d5e15e 100755
--- a/scripts/gen_vimdoc.py
+++ b/scripts/gen_vimdoc.py
@@ -36,11 +36,12 @@ import shutil
import textwrap
import subprocess
import collections
+import msgpack
from xml.dom import minidom
-if sys.version_info[0] < 3:
- print("use Python 3")
+if sys.version_info[0] < 3 or sys.version_info[1] < 5:
+ print("requires Python 3.5+")
sys.exit(1)
DEBUG = ('DEBUG' in os.environ)
@@ -84,7 +85,7 @@ CONFIG = {
'append_only': [],
},
'lua': {
- 'filename': 'if_lua.txt',
+ 'filename': 'lua.txt',
'section_start_token': '*lua-vim*',
'section_order': [
'vim.lua',
@@ -453,7 +454,7 @@ def parse_source_xml(filename, mode):
"""
global xrefs
xrefs = set()
- functions = []
+ functions = {} # Map of func_name:docstring.
deprecated_functions = []
dom = minidom.parse(filename)
@@ -577,11 +578,13 @@ def parse_source_xml(filename, mode):
if 'Deprecated' in xrefs:
deprecated_functions.append(func_doc)
elif name.startswith(CONFIG[mode]['func_name_prefix']):
- functions.append(func_doc)
+ functions[name] = func_doc
xrefs.clear()
- return '\n\n'.join(functions), '\n\n'.join(deprecated_functions)
+ return ('\n\n'.join(list(functions.values())),
+ '\n\n'.join(deprecated_functions),
+ functions)
def delete_lines_below(filename, tokenstr):
@@ -604,6 +607,13 @@ def gen_docs(config):
Doxygen is called and configured through stdin.
"""
for mode in CONFIG:
+ functions = {} # Map of func_name:docstring.
+ mpack_file = os.path.join(
+ base_dir, 'runtime', 'doc',
+ CONFIG[mode]['filename'].replace('.txt', '.mpack'))
+ if os.path.exists(mpack_file):
+ os.remove(mpack_file)
+
output_dir = out_dir.format(mode=mode)
p = subprocess.Popen(['doxygen', '-'], stdin=subprocess.PIPE)
p.communicate(
@@ -645,14 +655,15 @@ def gen_docs(config):
filename = get_text(find_first(compound, 'name'))
if filename.endswith('.c') or filename.endswith('.lua'):
- functions, deprecated = parse_source_xml(
- os.path.join(base, '%s.xml' %
- compound.getAttribute('refid')), mode)
+ functions_text, deprecated_text, fns = parse_source_xml(
+ os.path.join(base, '{}.xml'.format(
+ compound.getAttribute('refid'))), mode)
+ # Collect functions from all modules (for the current `mode`).
+ functions = {**functions, **fns}
- if not functions and not deprecated:
+ if not functions_text and not deprecated_text:
continue
-
- if functions or deprecated:
+ else:
name = os.path.splitext(os.path.basename(filename))[0]
if name == 'ui':
name = name.upper()
@@ -665,12 +676,12 @@ def gen_docs(config):
if intro:
doc += '\n\n' + intro
- if functions:
- doc += '\n\n' + functions
+ if functions_text:
+ doc += '\n\n' + functions_text
- if INCLUDE_DEPRECATED and deprecated:
+ if INCLUDE_DEPRECATED and deprecated_text:
doc += '\n\n\nDeprecated %s Functions: ~\n\n' % name
- doc += deprecated
+ doc += deprecated_text
if doc:
filename = os.path.basename(filename)
@@ -713,6 +724,8 @@ def gen_docs(config):
delete_lines_below(doc_file, CONFIG[mode]['section_start_token'])
with open(doc_file, 'ab') as fp:
fp.write(docs.encode('utf8'))
+ with open(mpack_file, 'wb') as fp:
+ fp.write(msgpack.packb(functions, use_bin_type=True))
shutil.rmtree(output_dir)
diff --git a/scripts/lua2dox.lua b/scripts/lua2dox.lua
index 77cdabcc4b..438f734917 100644
--- a/scripts/lua2dox.lua
+++ b/scripts/lua2dox.lua
@@ -543,7 +543,6 @@ function TLua2DoX_filter.readfile(this,AppStamp,Filename)
local fn = TString_removeCommentFromLine(string_trim(string.sub(line,pos_fn+8)))
if fn_magic then
fn = fn_magic
- fn_magic = nil
end
if string.sub(fn,1,1)=='(' then
@@ -554,49 +553,20 @@ function TLua2DoX_filter.readfile(this,AppStamp,Filename)
-- want to fix for iffy declarations
local open_paren = string.find(fn,'[%({]')
- local fn0 = fn
if open_paren then
- fn0 = string.sub(fn,1,open_paren-1)
-- we might have a missing close paren
if not string.find(fn,'%)') then
fn = fn .. ' ___MissingCloseParenHere___)'
end
end
- local dot = string.find(fn0,'[%.:]')
- if dot then -- it's a method
- local klass = string.sub(fn,1,dot-1)
- local method = string.sub(fn,dot+1)
- --TCore_IO_writeln('function ' .. klass .. '::' .. method .. ftail .. '{}')
- --TCore_IO_writeln(klass .. '::' .. method .. ftail .. '{}')
- outStream:writeln(
- '/*! \\memberof ' .. klass .. ' */ '
- .. method .. '{}'
- )
- else
- -- add vanilla function
-
- outStream:writeln(fn_type .. 'function ' .. fn .. '{}')
- end
+ -- add vanilla function
+ outStream:writeln(fn_type .. 'function ' .. fn .. '{}')
end
else
this:warning(inStream:getLineNo(),'something weird here')
end
fn_magic = nil -- mustn't indavertently use it again
- elseif string.find(line,'=%s*class%(') then
- state = 'in_class' -- it's a class declaration
- local tailComment
- line,tailComment = TString_removeCommentFromLine(line)
- local equals = string.find(line,'=')
- local klass = string_trim(string.sub(line,1,equals-1))
- local tail = string_trim(string.sub(line,equals+1))
- -- class(wibble wibble)
- -- ....v.
- local parent = string.sub(tail,7,-2)
- if #parent>0 then
- parent = ' :public ' .. parent
- end
- outStream:writeln('class ' .. klass .. parent .. '{};')
else
state = '' -- unknown
if #line>0 then -- we don't know what this line means, so just comment it out
diff --git a/scripts/shadacat.py b/scripts/shadacat.py
index 89846427a5..2b71fc2385 100755
--- a/scripts/shadacat.py
+++ b/scripts/shadacat.py
@@ -66,7 +66,7 @@ except IndexError:
def filt(entry): return True
else:
_filt = filt
- def filt(entry): return eval(_filt, globals(), {'entry': entry})
+ def filt(entry): return eval(_filt, globals(), {'entry': entry}) # noqa
poswidth = len(str(os.stat(fname).st_size or 1000))
diff --git a/scripts/update_version_stamp.lua b/scripts/update_version_stamp.lua
index 394c4f7694..11b521fab6 100755
--- a/scripts/update_version_stamp.lua
+++ b/scripts/update_version_stamp.lua
@@ -13,6 +13,10 @@ local function die(msg)
os.exit(0)
end
+local function iswin()
+ return package.config:sub(1,1) == '\\'
+end
+
if #arg ~= 2 then
die(string.format("Expected two args, got %d", #arg))
end
@@ -20,7 +24,8 @@ end
local versiondeffile = arg[1]
local prefix = arg[2]
-local described = io.popen('git describe --first-parent --dirty 2>/dev/null'):read('*l')
+local dev_null = iswin() and 'NUL' or '/dev/null'
+local described = io.popen('git describe --first-parent --dirty 2>'..dev_null):read('*l')
if not described then
described = io.popen('git describe --first-parent --tags --always --dirty'):read('*l')
end
diff --git a/scripts/vim-patch.sh b/scripts/vim-patch.sh
index 2a04805606..b6a0df4649 100755
--- a/scripts/vim-patch.sh
+++ b/scripts/vim-patch.sh
@@ -501,13 +501,15 @@ show_vimpatches() {
fi
done
- printf "\nInstructions:
+ cat << EOF
+
+Instructions:
To port one of the above patches to Neovim, execute this script with the patch revision as argument and follow the instructions, e.g.
- '%s -p v8.0.1234', or '%s -P v8.0.1234'
+ '${BASENAME} -p v8.0.1234', or '${BASENAME} -P v8.0.1234'
NOTE: Please port the _oldest_ patch if you possibly can.
- You can use '%s -l path/to/file' to see what patches are missing for a file.
-" "${BASENAME}" "${BASENAME}"
+ You can use '${BASENAME} -l path/to/file' to see what patches are missing for a file.
+EOF
}
review_commit() {