Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 4 additions & 6 deletions lua/r/edit.lua
Original file line number Diff line number Diff line change
Expand Up @@ -126,12 +126,10 @@ M.add_for_deletion = function(fname)
end

M.vim_leave = function()
if vim.g.R_Nvim_status == 7 and config.auto_quit then
require("r.run").quit_R("nosave")
local i = 30
while i > 0 and vim.g.R_Nvim_status == 7 do
vim.wait(100)
i = i - 1
if config.auto_quit then
if vim.g.R_Nvim_status == 7 or vim.g.R_nvim_auto_quit_pending then
vim.g.R_nvim_auto_quit_pending = nil
require("r.send").cmd('quit(save = "no")')
end
end

Expand Down
5 changes: 5 additions & 0 deletions lua/r/lsp/init.lua
Original file line number Diff line number Diff line change
Expand Up @@ -758,6 +758,11 @@ end
---@param signal integer Number describing the signal used to terminate (if any)
---@param client integer Client handle
local function on_exit(code, signal, client)
local cfg = require("r.config").get_config()
if vim.g.R_Nvim_status == 7 and cfg.auto_quit then
vim.g.R_nvim_auto_quit_pending = true
end

vim.g.R_Nvim_status = 1
if code == 0 then return end
local msg = string.format("r_ls exit (%d, %d, %d)", code, signal, client)
Expand Down
Loading