diff mbox series

contrib/vimrc: detect more C-like files

Message ID 20200203232628.72799-1-ppalka@redhat.com
State New
Headers show
Series contrib/vimrc: detect more C-like files | expand

Commit Message

Patrick Palka Feb. 3, 2020, 11:26 p.m. UTC
Currently this script doesn't set the indentation style for the standard library
headers under libstdc++/ because they lack a file extension.  But they do
have a modeline, so the file type is still set appropriately by Vim.  So by
inspecting &filetype, we can also detect these standard library headers as
C-like files.

contrib/ChangeLog:

	* vimrc (SetStyle): Also look at &filetype to determine whether to
	a file is C-like.
---
 contrib/vimrc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Patrick Palka July 23, 2020, 2:44 p.m. UTC | #1
On Mon, 3 Feb 2020, Patrick Palka wrote:

> Currently this script doesn't set the indentation style for the standard library
> headers under libstdc++/ because they lack a file extension.  But they do
> have a modeline, so the file type is still set appropriately by Vim.  So by
> inspecting &filetype, we can also detect these standard library headers as
> C-like files.
> 
> contrib/ChangeLog:
> 
> 	* vimrc (SetStyle): Also look at &filetype to determine whether to
> 	a file is C-like.
> ---
>  contrib/vimrc | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/contrib/vimrc b/contrib/vimrc
> index bbbe1dd449b..e2ccbe0fd10 100644
> --- a/contrib/vimrc
> +++ b/contrib/vimrc
> @@ -39,7 +39,7 @@ function! SetStyle()
>    setlocal formatoptions-=ro formatoptions+=cqlt
>    let l:ext = fnamemodify(l:fname, ":e")
>    let l:c_exts = ['c', 'h', 'cpp', 'cc', 'C', 'H', 'def', 'java']
> -  if index(l:c_exts, l:ext) != -1
> +  if index(l:c_exts, l:ext) != -1 || &filetype == "cpp" || &filetype == "c"
>      setlocal cindent
>      setlocal cinoptions=>4,n-2,{2,^-2,:2,=2,g0,f0,h2,p4,t0,+2,(0,u0,w1,m0
>    endif
> -- 
> 2.25.0.114.g5b0ca878e0

Here's a rebased patch.  Can another Vim user verify that this does the
right thing?

-- >8 --

Subject: [PATCH] contrib/vimrc: detect more C-like files

Currently this script doesn't set the indentation style for the standard
library headers under libstdc++/ because they lack a file extension.
But they do have a modeline, so the file type is still set appropriately
by Vim.  So by inspecting &filetype, we can also detect these standard
library headers as C-like files.

contrib/ChangeLog:

	* vimrc (SetStyle): Also inspect &filetype to determine whether
	to a file is C-like.
---
---
 contrib/vimrc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/contrib/vimrc b/contrib/vimrc
index c207eead2e4..356d455b059 100644
--- a/contrib/vimrc
+++ b/contrib/vimrc
@@ -45,7 +45,7 @@ function! SetStyle()
     setlocal textwidth=80
   endif
   setlocal formatoptions-=ro formatoptions+=cqlt
-  if index(l:c_exts, l:ext) != -1
+  if index(l:c_exts, l:ext) != -1 || &filetype == "c" || &filetype == "cpp"
     setlocal cindent
     setlocal cinoptions=>4,n-2,{2,^-2,:2,=2,g0,f0,h2,p4,t0,+2,(0,u0,w1,m0
   endif
Martin Liška July 23, 2020, 3:08 p.m. UTC | #2
On 7/23/20 4:44 PM, Patrick Palka via Gcc-patches wrote:
> Here's a rebased patch.  Can another Vim user verify that this does the
> right thing?

Yes, it works correctly for me! I tested that before and after your change
for ./libstdc++-v3/include/std/iomanip.

Please install the patch.
Martin
Patrick Palka July 23, 2020, 5:41 p.m. UTC | #3
On Thu, 23 Jul 2020, Martin Liška wrote:

> On 7/23/20 4:44 PM, Patrick Palka via Gcc-patches wrote:
> > Here's a rebased patch.  Can another Vim user verify that this does the
> > right thing?
> 
> Yes, it works correctly for me! I tested that before and after your change
> for ./libstdc++-v3/include/std/iomanip.
> 
> Please install the patch.
> Martin

Thanks Martin!  I pushed the patch just now.
diff mbox series

Patch

diff --git a/contrib/vimrc b/contrib/vimrc
index bbbe1dd449b..e2ccbe0fd10 100644
--- a/contrib/vimrc
+++ b/contrib/vimrc
@@ -39,7 +39,7 @@  function! SetStyle()
   setlocal formatoptions-=ro formatoptions+=cqlt
   let l:ext = fnamemodify(l:fname, ":e")
   let l:c_exts = ['c', 'h', 'cpp', 'cc', 'C', 'H', 'def', 'java']
-  if index(l:c_exts, l:ext) != -1
+  if index(l:c_exts, l:ext) != -1 || &filetype == "cpp" || &filetype == "c"
     setlocal cindent
     setlocal cinoptions=>4,n-2,{2,^-2,:2,=2,g0,f0,h2,p4,t0,+2,(0,u0,w1,m0
   endif