Skip to content

Conversation

@Andrew-Dunn
Copy link

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