Compare commits

..
3 Commits
Author SHA1 Message Date
nortega f40d9f81ea Add support for plain text. 2026-07-13 13:10:02 +02:00
nortega 9aaccf3ac9 Document how to add new languages to plugin. 2026-07-13 13:09:28 +02:00
nortega 8f25a68016 Add CMake to documentation. 2026-07-13 12:58:52 +02:00
3 changed files with 38 additions and 12 deletions
+35 -12
View File
@@ -98,7 +98,9 @@ For NeoVim with `init.lua`:
vim.g.licenser_author = "Your Name"
```
### Supported Licenses
### Licenses
#### Supported Licenses
vim-licenser includes templates for the following licenses:
@@ -118,17 +120,7 @@ vim-licenser includes templates for the following licenses:
Use tab completion to see all available licenses: `:Licenser <TAB>`
### Supported File Types
vim-licenser automatically detects your file type and applies the appropriate
comment style. Supported file types include:
bash, c, cpp, csharp, css, dart, go, groovy, haskell, html, java, javascript,
json, kotlin, lua, matlab, perl, php, python, r, ruby, rust, scala, shell, sql,
swift, typescript, typescriptreact, vim, xml, yaml
For more information, see `:help licenser` after installation.
## Adding New Licenses
#### Adding New Licenses
To add a new license, create a new file in the `licenses` directory with the
name of the license (e.g., `MIT.txt`) and add the license text to the file. The
@@ -136,6 +128,37 @@ license text can contain the YEAR and AUTHOR placeholders, which will be
replaced with the current year and the author name when the license header is
added to the source file.
### File Types
#### Supported File Types
vim-licenser automatically detects your file type and applies the appropriate
comment style. Supported file types include:
bash, c, cmake, cpp, csharp, css, dart, go, groovy, haskell, html, java,
javascript, json, kotlin, lua, matlab, perl, php, python, r, ruby, rust, scala,
shell, sql, swift, text, typescript, typescriptreact, vim, xml, yaml
For more information, see `:help licenser` after installation.
#### Adding Support for New File Types
To add support for a new file type, add an entry to the `comment_styles`
dictionary in the `plugin/licenser.vim` file. The key should be the file type
as recognized by Vim/NeoVim, and the contents should be as follows:
- `margin`: If the prefix and suffix should be used on their own lines. E.g. in
C and C++ the comment style is `/* */`, so the margin should be set to `1`.
In Python, the comment style is `#`, so the margin should be set to `0`.
- `hashbang`: If the file type supports shebang a line (e.g., `#!/usr/bin/env
python3`), set this to `1`. Otherwise, set it to `0`. This is used to
determine if the license header should be added after the shebang line.
- `prefix`: Comment string to use on the first line. Unused if `margin` is set
to `0`.
- `middle`: Comment string to use on the middle lines. If `margin` is set to
`0`, this will be used on all lines.
- `suffix`: Comment string to use on the last line. Unused if `margin` is set to
`0`.
## License
This project is licensed under the Zlib License. See the [LICENSE](LICENSE)
+2
View File
@@ -58,6 +58,7 @@ vim-licenser supports the following filetypes with appropriate comment styles:
bash - Shell script
c - C language
cmake - CMake Build Script
cpp - C++
csharp - C#
css - Cascading Style Sheets
@@ -82,6 +83,7 @@ vim-licenser supports the following filetypes with appropriate comment styles:
shell - Shell script
sql - SQL
swift - Swift
text - Plain text
typescript - TypeScript
typescriptreact - TypeScript React (TSX)
vim - Vim script
+1
View File
@@ -69,6 +69,7 @@ function! s:GetCommentStyle(filetype) abort
\ 'shell': {'margin': 0, 'hashbang': 1, 'prefix': '', 'middle': '#', 'suffix': ''},
\ 'sql': {'margin': 1, 'hashbang': 0, 'prefix': '/*', 'middle': ' *', 'suffix': ' */'},
\ 'swift': {'margin': 1, 'hashbang': 0, 'prefix': '/*', 'middle': ' *', 'suffix': ' */'},
\ 'text': {'margin': 0, 'hashbang': 0, 'prefix': '', 'middle': '', 'suffix': ''},
\ 'typescript': {'margin': 1, 'hashbang': 0, 'prefix': '/*', 'middle': ' *', 'suffix': ' */'},
\ 'typescriptreact': {'margin': 1, 'hashbang': 0, 'prefix': '/*', 'middle': ' *', 'suffix': ' */'},
\ 'vim': {'margin': 0, 'hashbang': 0, 'prefix': '', 'middle': '"', 'suffix': ''},