Skip to content

HakimCassimallyBBC/xqueryvim

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

__description__

This plugin configures Vim to be a little more efficient at editing XQuery...!

It also sets up Exuberant Ctags for XQuery, since it's not one of the supported languages.

ftplugin/xquery.vim:
    - Makes keys like gd and<C-]> and i_CTRL-p work better when editing XQuery files by adding the hyphen - to the 'iskeyword' option
      - NB: this makes navigation with w etc. skip over whole tokens.  To navigate by dashes, use https://github.com/bkad/CamelCaseMotion
        and navigate with <Leader>w instead.  (e.g. ,w by default)
    - Sets options useful when editing XQuery (like 'set comments')
    - Sets a few variables to make matchit.vim and taglist.vim work better with XQuery
    - Comment regions out via surround.vim by visually selecting an area, then pressing Sc

xquerycomplete.vim:
    -Completes W3C XQuery 'fn' functions, types and keywords.
    -Also completes any MarkLogic functions I could find at...  http://developer.marklogic.com/pubs/4.1/apidocs/All.html

        Examples:

            fn<CTRL-x><CTRL-o>
               ->  list of functions in the 'fn' namespace

            fn:doc<CTRL-x><CTRL-o>
               ->  fn:doc(
                   fn:doc-available(
                   fn:document-uri(

            xs<CTRL-x><CTRL-o>
               ->  list of all xquery types

            decl<CTRL-x><CTRL-o>
               ->  declare
                   declare function
                   declare namespace
                   declare option
                   declare default


indent/xquery.vim:
    - Attempts to indent according to the 'XQuery Style Conventions' here:  http://xqdoc.org/xquery-style.html

    - Typing out certain keywords (like for/let/where/order/return/else) will automatically indent to the correct location when typed out.

    - It can recognize complex FLOWR expressions. For example in the example below,
      if in insert mode, hitting enter after the first line will immediately
      align the cursor with the 'for'.

      Also,  typing out the 'let' in the fourth line will immediately re-indent the line to align with the 'let' on the first line.


             let $foo := for $editor in $editors
                         where not(contains($editor, "emacs"))
                         return $editor
             let $bar := "bar"
             return
                   $bar

         

__install details__

Just use your favourite package manager (Vundle etc.)  You'll have to additionally do steps 4-5 below if you want Ctags support.

OR

  1.  Copy ftplugin/xquery.vim to $HOME/.vim/ftplugin or $HOME/vimfiles/ftplugin or $VIM/vimfiles/ftplugin (and set 'filetype plugin on')
  2.  Copy autoload/xquerycomplete.vim to $HOME/.vim/autoload or $HOME/vimfiles/autoload or $VIM/vimfiles/autoload
  3.  Copy indent/xquery.vim to $HOME/.vim/indent/ or $HOME/vimfiles/indent or $VIM/vimfiles/indent   (and set 'filetype indent on').  
  4.  Copy _ctags to $HOME/.ctags (or one of the alternatives at http://ctags.sourceforge.net/ctags.html#FILES)
  5.  Download Exuberant Ctags and put it on your path.  Use 'ctags -R' to build a tags file for your XQuery source folder  

  The steps are mostly optional, so if you don't want automatic indentation for instance, you can just skip step #3.

About

Vim XQuery indent/omnicomplete/ftplugin

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Vim Script 96.0%
  • Shell 4.0%