aperezdc / vim-template

Simple templates plugin for Vim
371 stars 152 forks source link

Add a %PARENT% variable #131

Open Shadow53 opened 5 years ago

Shadow53 commented 5 years ago

This is particularly for the Go template, since it currently assumes that all files are part of a main package. In most cases, the parent folder of the file has the same name as the package for its containing files. With a %PARENT% variable, the line in the Go template could be changed from

package main

to

package %PARENT%

which will be correct more often.

As a side note, I'm proposing the name %PARENT% instead of something like %FOLDER% since the latter could be understood to expand to the absolute path of the containing folder.

Shadow53 commented 5 years ago

I somehow missed the bit of documentation about user-defined variables. I've added the following to my NeoVim init.vim, which implements the above.

let g:templates_user_variables = [
    \ ['PARENT', 'GetParentDir']
    \ ]

function! GetParentDir()
    return expand('%:p:h:t')
endfunction
aperezdc commented 5 years ago

@Shadow53 I guess it wouldn't hurt to have %PARENT% added, maybe with a more descriptive name like %PARENT_DIR_NAME% — but as you have discovered it's possible to add it anyway as an user variable so I won't be in a hurry to implement it myself. It's not difficult to add it, so for now I will leave it marked as “good first bug” so it can be picked by anyone willing to start contributing to the project :wink: