@@ -13,6 +13,7 @@ local default_config = require("gp.config")
13
13
local D = {
14
14
config = {},
15
15
providers = {},
16
+ query_dir = vim .fn .stdpath (" cache" ) .. " /gp/query" ,
16
17
}
17
18
18
19
--- @param opts table # user config
@@ -49,6 +50,19 @@ D.setup = function(opts)
49
50
provider .secret = nil
50
51
end
51
52
53
+ D .query_dir = helpers .prepare_dir (D .query_dir , " query store" )
54
+
55
+ local files = vim .fn .glob (D .query_dir .. " /*.json" , false , true )
56
+ if # files > 200 then
57
+ logger .debug (" too many query files, truncating cache" )
58
+ table.sort (files , function (a , b )
59
+ return a > b
60
+ end )
61
+ for i = 100 , # files do
62
+ helpers .delete_file (files [i ])
63
+ end
64
+ end
65
+
52
66
logger .debug (" dispatcher setup finished\n " .. vim .inspect (D ))
53
67
end
54
68
@@ -348,6 +362,9 @@ local query = function(buf, provider, payload, handler, on_exit, callback)
348
362
}
349
363
end
350
364
365
+ local temp_file = D .query_dir .. " /" .. logger .now () .. " ." .. string.format (" %x" , math.random (0 , 0xFFFFFF )) .. " .json"
366
+ helpers .table_to_file (payload , temp_file )
367
+
351
368
local curl_params = vim .deepcopy (D .config .curl_params or {})
352
369
local args = {
353
370
" --no-buffer" ,
@@ -356,8 +373,7 @@ local query = function(buf, provider, payload, handler, on_exit, callback)
356
373
" -H" ,
357
374
" Content-Type: application/json" ,
358
375
" -d" ,
359
- vim .json .encode (payload ),
360
- --[[ "--doesnt_exist" ]]
376
+ " @" .. temp_file ,
361
377
}
362
378
363
379
for _ , arg in ipairs (args ) do
0 commit comments