From 4a2044d8b679323bbf5246844fa4ae0f27bacee7 Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Wed, 5 Jun 2019 21:52:49 +1200 Subject: Remove repeated function definitions! --- autoload/big_file_options.vim | 50 ------------------------------------------- 1 file changed, 50 deletions(-) (limited to 'autoload') diff --git a/autoload/big_file_options.vim b/autoload/big_file_options.vim index 4d65bd4..21ab0a0 100644 --- a/autoload/big_file_options.vim +++ b/autoload/big_file_options.vim @@ -95,53 +95,3 @@ function! s:SetPost() abort echomsg 'Big file detected, set appropriate options' endfunction - -" If we can use filesize to detect the big file early, we should -function! big_file_options#CheckPre(filename) abort - - " Try and get filesize, bail out if we can't - let size = getfsize(a:filename) - if size == -1 - return - endif - - " Set the buffer's big flag to whether the file is verifiably outsize - let b:big_file_options_big = size == -2 || size > s:Limit() - - " If we found it's a big file, call the early options set - if b:big_file_options_big - call s:SetPre() - endif - -endfunction - -" If it's still indeterminate (stdin read?), try to check the buffer size -" itself -function! big_file_options#CheckPost() abort - - " The BufReadPre hook couldn't tell how big the file was; we'll examine it - " now it's loaded into the buffer instead - if !exists('b:big_file_options_big') - - " Test buffer size, bail if that doesn't work either - let size = line2byte(line('$') + 1) - if size == -1 - return - endif - - " Flag the buffer's oversize status, if it's positive, we'll catch up and - " run the early options set now - let b:big_file_options_big = size > s:Limit() - if b:big_file_options_big - call s:SetPre() - endif - - endif - - " If the buffer size is verifiably over the threshold, run the late options - " set - if b:big_file_options_big - call s:SetPost() - endif - -endfunction -- cgit v1.2.3 From 8ac1fe4bf65ee3cf825929a2642f8b660890ddb1 Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Wed, 5 Jun 2019 21:53:29 +1200 Subject: Refactor to use deferred/dynamic hooks --- autoload/big_file_options.vim | 44 ++++++++++++++++++++----------------------- 1 file changed, 20 insertions(+), 24 deletions(-) (limited to 'autoload') diff --git a/autoload/big_file_options.vim b/autoload/big_file_options.vim index 21ab0a0..5f9094a 100644 --- a/autoload/big_file_options.vim +++ b/autoload/big_file_options.vim @@ -1,48 +1,44 @@ " If we can use filesize to detect the big file early, we should -function! big_file_options#CheckPre(filename) abort +function! big_file_options#() abort - " Try and get filesize, bail out if we can't - let size = getfsize(a:filename) + " Try and get filesize; if we can't, defer another check attempt until after + " everything's been loaded + let size = getfsize(bufname('%')) if size == -1 + autocmd big_file_options BufReadPost,StdinReadPost + \ call s:CheckPost() + \|autocmd! big_file_options BufReadPost,StdinReadPost return endif " Set the buffer's big flag to whether the file is verifiably outsize - let b:big_file_options_big = size == -2 || size > s:Limit() + let b:big_file_options_big = size > s:Limit() || size == -2 " If we found it's a big file, call the early options set if b:big_file_options_big call s:SetPre() + autocmd big_file_options BufReadPost,StdinReadPost + \ call s:SetPost() + \|autocmd! big_file_options BufReadPost,StdinReadPost endif endfunction " If it's still indeterminate (stdin read?), try to check the buffer size " itself -function! big_file_options#CheckPost() abort - - " The BufReadPre hook couldn't tell how big the file was; we'll examine it - " now it's loaded into the buffer instead - if !exists('b:big_file_options_big') - - " Test buffer size, bail if that doesn't work either - let size = line2byte(line('$') + 1) - if size == -1 - return - endif - - " Flag the buffer's oversize status, if it's positive, we'll catch up and - " run the early options set now - let b:big_file_options_big = size > s:Limit() - if b:big_file_options_big - call s:SetPre() - endif +function! s:CheckPost() abort + " Test buffer size, bail if that doesn't work either + let size = line2byte(line('$') + 1) + if size == -1 + return endif - " If the buffer size is verifiably over the threshold, run the late options - " set + " Flag the buffer's oversize status; if it's positive, we'll catch up and + " run the early options set now + let b:big_file_options_big = size > s:Limit() if b:big_file_options_big + call s:SetPre() call s:SetPost() endif -- cgit v1.2.3 From f4ec4fcf2beb6e67a4564bbbf9cfb2e48f57d74f Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Wed, 5 Jun 2019 22:04:52 +1200 Subject: Add a blank line --- autoload/big_file_options.vim | 1 + 1 file changed, 1 insertion(+) (limited to 'autoload') diff --git a/autoload/big_file_options.vim b/autoload/big_file_options.vim index 5f9094a..07d047e 100644 --- a/autoload/big_file_options.vim +++ b/autoload/big_file_options.vim @@ -67,6 +67,7 @@ function! s:SetPre() abort setlocal nomodifiable setlocal readonly endif + endfunction " These options need to be set later, after the buffer has loaded -- cgit v1.2.3 From 0ac3b59308eefeca1b768054bf4b1e6aa86305ee Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Wed, 5 Jun 2019 22:05:03 +1200 Subject: Set filetype to blank string, not NONE --- autoload/big_file_options.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'autoload') diff --git a/autoload/big_file_options.vim b/autoload/big_file_options.vim index 07d047e..381b0f7 100644 --- a/autoload/big_file_options.vim +++ b/autoload/big_file_options.vim @@ -74,7 +74,7 @@ endfunction function! s:SetPost() abort " Force filetype off - setlocal filetype=NONE + setlocal filetype= " Disable syntax highlighting if configured let syntax = get(g:, 'big_file_options_syntax', 0) -- cgit v1.2.3