[Pacemaker] Syntax highlighting in vim for crm configure edit

Dejan Muhamedagic dejanmm at fastmail.fm
Mon Dec 5 08:54:50 EST 2011


Hi,

On Tue, Nov 22, 2011 at 07:14:24PM +0200, Dan Frincu wrote:
> Hi,
> 
> On Tue, Nov 15, 2011 at 11:47 AM, Raoul Bhatia [IPAX] <r.bhatia at ipax.at> wrote:
> > hi!
> >
> > On 2011-08-19 16:28, Dan Frincu wrote:
> >>
> >> Hi,
> >>
> >> On Thu, Aug 18, 2011 at 5:53 PM, Digimer<linux at alteeve.com>  wrote:
> >>>
> >>> On 08/18/2011 10:39 AM, Trevor Hemsley wrote:
> >>>>
> >>>> Hi all
> >>>>
> >>>> I have attached a first stab at a vim syntax highlighting file for 'crm
> >>>> configure edit'
> >>>>
> >>>> To activate this, I have added 'filetype plugin on' to my /root/.vimrc
> >>>> then created /root/.vim/{ftdetect,ftplugin}/pcmk.vim
> >>>>
> >>>> In /root/.vim/ftdetect/pcmk.vim I have the following content
> >>>>
> >>>> au BufNewFile,BufRead /tmp/tmp* set filetype=pcmk
> >>>>
> >>>> but there may be a better way to make this happen. /root/.vim/pcmk.vim
> >>>> is the attached file.
> >>>>
> >>>> Comments (not too nasty please!) welcome.
> >>
> >> I've added a couple of extra keywords to the file, to cover a couple
> >> more use cases. Other than that, great job.
> >
> > will this addition make it into some package(s)?
> > would it be right to ship this vim syntax file with crm?
> 
> In the hope it will be a part of crm, I've written a patch for this.
> Applying the patch over cibconfig.py and utils.py on Pacemaker 1.1.5
> and adding the pcmk.vim file to the vim syntax folder (for Debian
> Squeeze it's /usr/share/vim/vim72/syntax) gives access to syntax
> highlighting in crm configure edit, if using vi/vim as editor.
> 
> Original work on pcmk.vim by Trevor Hemsley <themsley at voiceflex.com>,
> a couple of additions by me.
> 
> Please review it and and add a Signed-Off line if it's ok.

Just tried it out, and when I do :set filetype=pcmk, vim spews at
me this:

Error detected while processing /usr/share/vim/vim72/syntax/synload.vim:
line   58:
E127: Cannot redefine function <SNR>3_SynSet: It is in use
E127: Cannot redefine function <SNR>3_SynSet: It is in use
E127: Cannot redefine function <SNR>3_SynSet: It is in use
E127: Cannot redefine function <SNR>3_SynSet: It is in use
Error detected while processing /usr/share/vim/vim72/syntax/nosyntax.vim:
line   21:
E218: autocommand nesting too deep
Error detected while processing /usr/share/vim/vim72/syntax/synload.vim:
line   58:
E127: Cannot redefine function <SNR>3_SynSet: It is in use
Error detected while processing /usr/share/vim/vim72/syntax/syntax.vim:
line   40:
E218: autocommand nesting too deep

BTW, I just copied the pcmk.vim file to ~/.vim/syntax.

Otherwise, the output looks fine. There are a few differences to
the configure show output:

- quotes are red along with the value
- ids are green whereas in configure show they are normal
- id references are light blue and in configure show they are green
- scores are red and in configure show violet
- roles/actions in constraints red and in configure show normal

There are probably a few more differences.

Cheers,

Dejan


> Regards,
> Dan
> 
> p.s.: many thanks to everyone for the input received on IRC.
> 
> >
> > thanks,
> > raoul
> > --
> > ____________________________________________________________________
> > DI (FH) Raoul Bhatia M.Sc.          email.          r.bhatia at ipax.at
> > Technischer Leiter
> >
> > IPAX - Aloy Bhatia Hava OG          web.          http://www.ipax.at
> > Barawitzkagasse 10/2/2/11           email.            office at ipax.at
> > 1190 Wien                           tel.               +43 1 3670030
> > FN 277995t HG Wien                  fax.            +43 1 3670030 15
> > ____________________________________________________________________
> >
> 
> 
> 
> -- 
> Dan Frincu
> CCNA, RHCE

> From d3ab2ab159137b271382db8d0edeef6d69325894 Mon Sep 17 00:00:00 2001
> From: =?UTF-8?q?Dan=20Fr=C3=AEncu?= <df.cluster at gmail.com>
> Date: Tue, 22 Nov 2011 18:50:10 +0200
> Subject: [PATCH][BUILD] Low: extra: Add syntax highlighting for crm configure edit
> MIME-Version: 1.0
> Content-Type: text/plain; charset=UTF-8
> Content-Transfer-Encoding: 8bit
> 
> 
> Signed-off-by: Dan Frîncu <df.cluster at gmail.com>
> ---
>  shell/modules/cibconfig.py |    1 +
>  shell/modules/utils.py     |    7 +++++--
>  2 files changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/shell/modules/cibconfig.py b/shell/modules/cibconfig.py
> index 9cc9751..49b4b51 100644
> --- a/shell/modules/cibconfig.py
> +++ b/shell/modules/cibconfig.py
> @@ -128,6 +128,7 @@ class CibObjectSet(object):
>              except IOError, msg:
>                  common_err(msg)
>                  break
> +            s += "\n# vim: set filetype=.pcmk :\n"
>              s = ''.join(f)
>              f.close()
>              if hash(s) == filehash: # file unchanged
> diff --git a/shell/modules/utils.py b/shell/modules/utils.py
> index b57aa54..00013c6 100644
> --- a/shell/modules/utils.py
> +++ b/shell/modules/utils.py
> @@ -158,7 +158,7 @@ def str2tmp(s):
>      Write the given string to a temporary file. Return the name
>      of the file.
>      '''
> -    fd,tmp = mkstemp()
> +    fd,tmp = mkstemp(suffix=".pcmk")
>      try: f = os.fdopen(fd,"w")
>      except IOError, msg:
>          common_err(msg)
> @@ -317,7 +317,10 @@ def edit_file(fname):
>          return
>      if not user_prefs.editor:
>          return
> -    return ext_cmd("%s %s" % (user_prefs.editor,fname))
> +    if user_prefs.editor == "vim" or user_prefs.editor == "vi":
> +        return ext_cmd("%s %s -u /usr/share/vim/vim72/syntax/pcmk.vim" % (user_prefs.editor,fname))
> +    else:
> +        return ext_cmd("%s %s" % (user_prefs.editor,fname))
>  
>  def page_string(s):
>      'Write string through a pager.'
> -- 
> 1.7.0.4
> 


> _______________________________________________
> Pacemaker mailing list: Pacemaker at oss.clusterlabs.org
> http://oss.clusterlabs.org/mailman/listinfo/pacemaker
> 
> Project Home: http://www.clusterlabs.org
> Getting started: http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf
> Bugs: http://bugs.clusterlabs.org





More information about the Pacemaker mailing list