annotate scripts/vimutil.py @ 10:f444739dd8af
Improvements to YCM dynamic flags.
- Fallback to a "companion" item (e.g. header/source) or a nearby item
when no flags are found for an item.
- Finding a "companion" is also exposed as a standalone script.
- Ability to pass extra clang flags, including some from a special
file found in the .vimcrosoft directory.
- Add support for PCH and other forced-include files.
- Add options for short/long args, or forcing forward slashes.
- Debugging/troubleshooting options, including dumping a batch file and
response file to run clang directly, and the ability to auto-load a
solution's last known environment when running in command line.
author |
Ludovic Chabant <ludovic@chabant.com> |
date |
Thu, 24 Sep 2020 23:02:16 -0700 |
parents |
5d2c0db51914 |
children |
|
rev |
line source |
0
|
1 import io
|
|
2 import sys
|
|
3
|
|
4
|
|
5 def runscript(scriptfunc, *args):
|
|
6 """ Executes a given function with the given args. This is because
|
|
7 the convention is that all python scripts here should have a `main`
|
|
8 function that takes a custom list of args to override the default
|
|
9 behaviour of using `sys.args`.
|
|
10 """
|
|
11 prevout = sys.stdout
|
|
12 captured = io.StringIO()
|
|
13 sys.stdout = captured
|
|
14 try:
|
|
15 scriptfunc(args)
|
|
16 finally:
|
|
17 sys.stdout = prevout
|
|
18 return captured.getvalue()
|
|
19
|