Skip to content

Commit

Permalink
attempt no 3 to fix break inside osv
Browse files Browse the repository at this point in the history
Ref #21
  • Loading branch information
jbyuki committed Jul 5, 2024
1 parent 8d89d84 commit 589dd96
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 18 deletions.
16 changes: 7 additions & 9 deletions lua/osv/init.lua
Original file line number Diff line number Diff line change
Expand Up @@ -638,31 +638,30 @@ function M.wait_attach()
local levels = 1
local skip = 0

local inside_osv = false
local off = 0
while true do
local info = debug.getinfo(skip+levels+start_frame)
local info = debug.getinfo(off+levels+start_frame)
if not info then
break
end

local current_inside_osv = false
local inside_osv = false
if info.source:sub(1, 1) == '@' then
local source = info.source:sub(2)
local path = vim.fn.resolve(vim.fn.fnamemodify(source, ":p"))
if vim.fs.basename(path) == 'init.lua' then
local parent = vim.fs.dirname(path)
if parent and vim.fs.basename(parent) == "osv" then
current_inside_osv = true
inside_osv = true
end
end
end

if inside_osv and not current_inside_osv then
break
if inside_osv then
skip = off + 1
end

inside_osv = current_inside_osv
skip = skip + 1
off = off + 1
end


Expand Down Expand Up @@ -697,7 +696,6 @@ function M.wait_attach()
table.insert(stack_frames, stack_frame)
frames[frame_id] = skip+levels+start_frame
frame_id = frame_id + 1
skip_firsts = false

levels = levels + 1
end
Expand Down
16 changes: 7 additions & 9 deletions src/handlers/stack_trace.lua.t
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,6 @@ while levels <= max_levels or max_levels == -1 do
table.insert(stack_frames, stack_frame)
frames[frame_id] = skip+levels+start_frame
frame_id = frame_id + 1
skip_firsts = false

levels = levels + 1
end
Expand Down Expand Up @@ -70,22 +69,21 @@ end


@skip_internal_frames+=
local inside_osv = false
local off = 0
while true do
local info = debug.getinfo(skip+levels+start_frame)
local info = debug.getinfo(off+levels+start_frame)
if not info then
break
end

local current_inside_osv = false
local inside_osv = false
@check_if_inside_osv

if inside_osv and not current_inside_osv then
break
if inside_osv then
skip = off + 1
end

inside_osv = current_inside_osv
skip = skip + 1
off = off + 1
end

@check_if_inside_osv+=
Expand All @@ -95,7 +93,7 @@ if info.source:sub(1, 1) == '@' then
if vim.fs.basename(path) == 'init.lua' then
local parent = vim.fs.dirname(path)
if parent and vim.fs.basename(parent) == "osv" then
current_inside_osv = true
inside_osv = true
end
end
end

0 comments on commit 589dd96

Please sign in to comment.