tweekmonster / django-plus.vim

:guitar: Improvements to the handling of Django related files in Vim
MIT License
179 stars 15 forks source link

Don't register filetype detection more than once #21

Open lieryan opened 3 years ago

lieryan commented 3 years ago

This adds a command to avoid redefining autocmd more than once in a vim session.

Every time vim sets filetype for a new buffer, vim will re-run ftdetect.vim. The augroup in django-plus.vim's ftdetect.vim file didn't clear any of the existing commands in its augroup, so the autocmd will get registered multiple times. Indeed, this can be verified by running :autocmd filetypedetect to see that this command has been registered multiple times:

filetypedetect BufReadPost
    *        call djangoplus#detect#filetype(expand('<afile>:p'))
    *        call djangoplus#detect#filetype(expand('<afile>:p'))
    *        call djangoplus#detect#filetype(expand('<afile>:p'))
    [repeat 100 times]

I don't have measurements, but I can see a noticeable effect on the delay when opening new buffers in long running vim session with lots of open files.