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

Escape % to avoid "invalid capture index problem" when % in the input #408

Closed ilan-schemoul closed 3 months ago

ilan-schemoul commented 3 months ago

Hey, If you select a line with a "%" for example " while (fscanf(src, "%30s ", str) == 1) " And try to run a ChatGPTRun command such as code_readbility_analysis you will have an error invalid capture index lua/chatgpt/flows/actions/chat/init.lua:52 The reason it happens is that when there is a % it is interpreted as a capture index by gsub but of course it is not intended. We need to escape those. The resulting code is value = value:gsub("%%", "%%%%") because inside a string the % themselve need to be escaped too. It it tested and fix the problem on my side.

ilan-schemoul commented 3 months ago

I am going to split this

ilan-schemoul commented 3 months ago

I made a mistake with commits. The PR is now #410