11local M = {}
22
33local job = require (' job' )
4- local nt = require (' notify' )
54local log = require (' git.log' )
65
76local status_bufnr = - 1
@@ -18,17 +17,20 @@ local function close_status_window()
1817end
1918
2019local function openStatusBuffer ()
21- vim .cmd ([[
22- 10split git://status
23- normal! "_dd
24- setl nobuflisted
25- setl nomodifiable
26- setl nonumber norelativenumber
27- setl buftype=nofile
28- setl bufhidden=wipe
29- setf git-status
30- ]] )
31- status_bufnr = vim .fn .bufnr ()
20+ status_bufnr = vim .api .nvim_create_buf (false , false )
21+ vim .api .nvim_buf_set_name (status_bufnr , ' git://status' )
22+ vim .api .nvim_buf_set_lines (status_bufnr , 0 , - 1 , false , {})
23+ local winid = vim .api .nvim_open_win (status_bufnr , true , {
24+ split = ' above' ,
25+ height = 10 ,
26+ })
27+ vim .api .nvim_set_option_value (' buflisted' , false , { buf = status_bufnr })
28+ vim .api .nvim_set_option_value (' modifiable' , false , { buf = status_bufnr })
29+ vim .api .nvim_set_option_value (' buftype' , ' nofile' , { buf = status_bufnr })
30+ vim .api .nvim_set_option_value (' bufhidden' , ' wipe' , { buf = status_bufnr })
31+ vim .api .nvim_set_option_value (' filetype' , ' git-status' , { buf = status_bufnr })
32+ vim .api .nvim_set_option_value (' number' , false , { win = winid })
33+ vim .api .nvim_set_option_value (' relativenumber' , false , { win = winid })
3234 -- nnoremap <buffer><silent> q :call <SID>close_status_window()<CR>
3335 vim .api .nvim_buf_set_keymap (status_bufnr , ' n' , ' q' , ' ' , {
3436 callback = close_status_window ,
@@ -63,16 +65,16 @@ local function on_exit(id, code, single)
6365 end
6466 log .debug (' git-status exit code:' .. code .. ' single:' .. single )
6567 if vim .api .nvim_buf_is_valid (status_bufnr ) then
66- vim .api .nvim_buf_set_option ( status_bufnr , ' modifiable' , true )
68+ vim .api .nvim_set_option_value ( ' modifiable' , true , { buf = status_bufnr } )
6769 vim .api .nvim_buf_set_lines (status_bufnr , 0 , - 1 , false , lines )
68- vim .api .nvim_buf_set_option ( status_bufnr , ' modifiable' , false )
70+ vim .api .nvim_set_option_value ( ' modifiable' , false , { buf = status_bufnr } )
6971 pcall (vim .api .nvim_del_autocmd , autocmd )
7072 autocmd = vim .api .nvim_create_autocmd (' BufReadCmd' , {
7173 buffer = status_bufnr ,
7274 callback = function ()
73- vim .api .nvim_buf_set_option ( status_bufnr , ' modifiable' , true )
75+ vim .api .nvim_set_option_value ( ' modifiable' , true , { buf = status_bufnr } )
7476 vim .api .nvim_buf_set_lines (status_bufnr , 0 , - 1 , false , lines )
75- vim .api .nvim_buf_set_option ( status_bufnr , ' modifiable' , false )
77+ vim .api .nvim_set_option_value ( ' modifiable' , false , { buf = status_bufnr } )
7678 vim .api .nvim_set_option_value (' syntax' , ' diff' , { buf = status_bufnr })
7779 end ,
7880 })
0 commit comments