jackMort / ChatGPT.nvim

ChatGPT Neovim Plugin: Effortless Natural Language Generation with OpenAI's ChatGPT API
Apache License 2.0
3.56k stars 307 forks source link

Add `filepath` to action variables #424

Closed jack-michaud closed 1 week ago

jack-michaud commented 2 months ago

Currently, action templates support the following variables: {{filetype}} (neovim filetype), {{input}} (the selected text) and an {{argument}} (provided on the command line).

During an exploration in writing tests with LLMs, I found that providing the path to the file relative to the root of my project allowed my LLM to properly import the file to write the tests for it.

So I contributed {{filepath}}, a new variable which gets the relative path to the file being operated on.

This was done by adding a new method get_filepath to BaseAction and adding the filepath variable to render_template.

I tested this by writing a template with {{filepath}} and observing the path getting put into the prompt with this OpenAI compatible API https://gist.github.com/Berkodev/77000c57ec49f41ce73b754d684f10f9#file-openai_compatible_api_example-py

jackMort commented 1 week ago

great, thanks for your contribution!