view 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
line wrap: on
line source

import io
import sys


def runscript(scriptfunc, *args):
    """ Executes a given function with the given args. This is because
        the convention is that all python scripts here should have a `main`
        function that takes a custom list of args to override the default
        behaviour of using `sys.args`.
    """
    prevout = sys.stdout
    captured = io.StringIO()
    sys.stdout = captured
    try:
        scriptfunc(args)
    finally:
        sys.stdout = prevout
    return captured.getvalue()