Let's try to use a temporary file, other ways are not very clear to me yet.
```lua
local aTemplate = 'sort -f "$TMPFILE"'

local sTmpFile, sTmpStr, bFullText, sCommand

local aFileInfo = geany.fileinfo()
if aFileInfo.ext == nil then
  sTmpFile = os.tmpname() .. ".txt"
else
  sTmpFile = os.tmpname() .. aFileInfo.ext
end

local iStart, iStop = geany.select()
local h = io.open(sTmpFile, "wb")
if h == nil then
  geany.message("Fail 1.")
  return
end
sTmpStr = geany.selection()
if sTmpStr == nil then
  geany.message("Fail 2.")
  return
elseif sTmpStr == "" then
  sTmpStr = geany.text()
  bFullText = true
end
h:write(sTmpStr)
h:close()

sCommand = string.gsub(sTemplate, "%$TMPFILE", sTmpFile)
h = io.popen(sCommand, "r")
if h == nil then
  geany.message("Fail 3.")
  return
end
sTmpStr = h:read("*a")
h:close()
sTmpStr = string.gsub(sTmpStr, "\r*[\r\n]$", "")
if bFullText == true then
  geany.text(sTmpStr)
  geany.select(iStart)
else
  geany.selection(sTmpStr)
  geany.select(iStart, iStop)
end
geany.message("Done.")
```
See the template in the value of the `sTemplate` variable (first line). If you 
want to use, for example, `grep`, then try
```lua
local sTemplate = 'cat "$TMPFILE" | grep "some text"'
```
Probably, in this case it is better to use the `geany.choose` function instead 
of separate scripts.

Try with and without selection.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/discussions/4070#discussioncomment-11563481
You are receiving this because you are subscribed to this thread.

Message ID: <geany/geany/repo-discussions/4070/comments/[email protected]>

Reply via email to