Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implemented dynamic compilation options. #406

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

Andrew-Dunn
Copy link
Contributor

By entering a shell command surrounded by backticks ``` in the .clang_complete file, clang complete will execute command, and treat any output to stdout as more lines in the .clang_complete file.

This is especially helpful for interfacing with build systems which automatically provide dependencies.

For example:

.clang_complete

-Iincludes/
`tmake --ccflags <<FILE>>`

This would add includes/ to the include path as well as process the required compilation flags for the current file.

There may be security concerns with this patch as it allows for code execution, but in my opinion it is a useful feature.

@tobiasgrosser
Copy link
Collaborator

As you realized this causes security concerns.

A solution to address these concerns is to introduce a new argument to clang_complete-auto_user_options, which is called '.clang_complete-dynamic', which has the behaviour you propose
and which is disabled by default.

However, to make this even more generic we probably want to have some kind of system that somehow passes the filename to this program such that per-file command lines are possible.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants