summaryrefslogtreecommitdiff
path: root/lua/99/ops/implement-fn.lua
diff options
context:
space:
mode:
authorThePrimeAgain <theprimeagain@theprimeagain.com>2025-12-01 16:01:40 -0700
committerThePrimeAgain <theprimeagain@theprimeagain.com>2025-12-01 16:01:40 -0700
commit7438d6024d57736ec2fe8e0cc8feeb4f5c817d33 (patch)
tree0e44b283b395817fae12934809dc8019ae0b15ed /lua/99/ops/implement-fn.lua
parent00c5d9a9ca2d978641e7d30ab70bb34249011dec (diff)
downloada4-7438d6024d57736ec2fe8e0cc8feeb4f5c817d33.tar.xz
a4-7438d6024d57736ec2fe8e0cc8feeb4f5c817d33.zip
getting to the point of making this look pretty
Diffstat (limited to 'lua/99/ops/implement-fn.lua')
-rw-r--r--lua/99/ops/implement-fn.lua31
1 files changed, 21 insertions, 10 deletions
diff --git a/lua/99/ops/implement-fn.lua b/lua/99/ops/implement-fn.lua
index ef28c10..3d445a7 100644
--- a/lua/99/ops/implement-fn.lua
+++ b/lua/99/ops/implement-fn.lua
@@ -1,32 +1,43 @@
+local Context = require("99.ops.context")
+local Location = require("99.editor.location")
local Logger = require("99.logger.logger")
local Request = require("99.request")
local editor = require("99.editor")
-local Range = require("99.geo").Range
+local geo = require("99.geo")
+local Range = geo.Range
+local Point = geo.Point
local function update_code(request, ok, res)
if not ok then
error("unable to implement function. check logger for more details")
end
- Logger:fatal("not implemented yet")
+ Logger:fatal("not implemented yet")
end
--- @param _99 _99.State
---- @return _99.Request?
+--- @return _99.Request
local function implement_fn(_99)
+ local ts = editor.treesitter
+ local cursor = Point:from_cursor()
+ local scopes = ts.function_scopes(cursor)
+
+ local range = scopes:get_inner_scope()
+
+ local context = Context.new(_99)
local request = Request.new({
- model = _99.model,
- md_files = _99.md_files,
on_complete = update_code,
+ model = _99.model,
+ context = context,
})
local ts = editor.treesitter
local ident = ts.identifier(request.buffer, request.cursor)
- print_ident(ident)
+ print_ident(ident)
- if not ident then
- Logger:error("implement_fn was called but cursor was not on a function call", "cursor", request.cursor)
- return nil
- end
+ if not ident then
+ Logger:error("implement_fn was called but cursor was not on a function call", "cursor", request.cursor)
+ return nil
+ end
Range:from_ts_node(ident, request.buffer)