changeset 35716:8195572b0b15

runtime(gdscript): add recommended indent options to ftplugin Commit: https://github.com/vim/vim/commit/6a54dcbbd68e70ee067348d1d9c1898befc56972 Author: markmacode <code@mamo.aleeas.com> Date: Tue Jul 16 21:18:06 2024 +0200 runtime(gdscript): add recommended indent options to ftplugin related: https://github.com/vim/vim/issues/15264 Signed-off-by: markmacode <code@mamo.aleeas.com> Signed-off-by: Maxim Kim <habamax@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
author Christian Brabandt <cb@256bit.org>
date Wed, 17 Jul 2024 08:14:00 +0200
parents f305d9d232b6
children 99d97826842a
files runtime/doc/filetype.txt runtime/ftplugin/gdscript.vim
diffstat 2 files changed, 17 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/doc/filetype.txt
+++ b/runtime/doc/filetype.txt
@@ -623,6 +623,17 @@ any #lang directive overrides, use the f
 	let g:freebasic_lang = "fblite"
 
 
+GDSCRIPT						*ft-gdscript-plugin*
+
+By default the following options are set, based on Godot official docs: >
+
+	setlocal noexpandtab softtabstop=0 shiftwidth=0
+
+To disable this behavior, set the following variable in your vimrc: >
+
+	let g:gdscript_recommended_style = 0
+
+
 GIT COMMIT                                              *ft-gitcommit-plugin*
 
 One command, :DiffGitCached, is provided to show a diff of the current commit
--- a/runtime/ftplugin/gdscript.vim
+++ b/runtime/ftplugin/gdscript.vim
@@ -4,6 +4,7 @@ vim9script
 # Language: gdscript (Godot game engine scripting language)
 # Maintainer: Maxim Kim <habamax@gmail.com>
 # Website: https://github.com/habamax/vim-gdscript
+# Last Change: 2024 Jul 14
 
 if exists("b:did_ftplugin") | finish | endif
 
@@ -22,6 +23,11 @@ setlocal commentstring=#\ %s
 setlocal foldignore=
 setlocal foldexpr=GDScriptFoldLevel()
 
+if get(g:, 'gdscript_recommended_style', 1)
+    setlocal noexpandtab tabstop=4 softtabstop=0 shiftwidth=0
+    b:undo_ftplugin ..= ' | setlocal expandtab< tabstop< softtabstop< shiftwidth<'
+endif
+
 
 def GDScriptFoldLevel(): string
     var line = getline(v:lnum)