Quick links: help overview · quick reference · user manual toc · reference manual toc · faq
                                                                                
logiPat.txt   Logical Patterns                                Jun 22, 2015

Author:  Charles E. Campbell  <NdrOchip@ScampbellPfamily.AbizM>
Copyright: (c) 2004-2015 by Charles E. Campbell logiPat-copyright
           The VIM LICENSE applies to LogiPat.vim and LogiPat.txt
           (see copyright) except use "LogiPat" instead of "Vim"
           No warranty, express or implied.  Use At-Your-Own-Risk.

==============================================================================
1. Contents                                     logiPat logiPat-contents

        1. Contents.................: logiPat-contents
        2. LogiPat Manual...........: logiPat-manual
        3. LogiPat Examples.........: logiPat-examples
        4. Caveat...................: logiPat-caveat
        5. LogiPat History..........: logiPat-history


==============================================================================
2. LogiPat Manual                       logiPat-manual logiPat-man

        logiPat-arg logiPat-input logiPat-pattern logiPat-operators
        Boolean logic patterns are composed of

                        operators  ! = not
                                   | = logical-or
                                   & = logical-and
                        grouping   ( ... )
                        patterns   "pattern"

        :LogiPat {boolean-logic pattern}                :LogiPat
                :LogiPat is a command which takes a boolean-logic
                argument (logiPat-arg).

        :LP {boolean-logic pattern}                     :LP
                :LP is a shorthand command version of :LogiPat

        :LPE {boolean-logic pattern}                    :LPE
                No search is done, but the conversion from the
                boolean logic pattern to the regular expression
                is performed and echoed onto the display.

        :LogiPatFlags {search flags}                    LogiPat-flags
                :LogiPatFlags {search flags}
                LogiPat uses the search() command.  The flags
                passed to that call to search() may be specified
                by the :LogiPatFlags command.

        :LPF {search flags}                             :LPF
                :LPF is a shorthand version of :LogiPatFlags.

        :let pat=LogiPat({boolean-logic pattern})       LogiPat()
                If one calls LogiPat() directly, no search
                is done, but the transformation from the boolean
                logic pattern into a regular expression pattern
                is performed and returned.

        To get a " inside a pattern, as opposed to having it delimit
        the pattern, double it.


==============================================================================
3. LogiPat Examples                                     logiPat-examples

        LogiPat takes Boolean logic arguments and produces a regular
        expression which implements the choices.  A series of examples
        follows:

        :LogiPat "abc"
               will search for lines containing the string  :abc:

        :LogiPat "ab""cd"
               will search for lines containing the string  :ab"c:

        :LogiPat !"abc"
               will search for lines which don't contain the string  :abc:

        :LogiPat "abc"|"def"
               will search for lines which contain either the string
                :abc:  or the string  :def:

        :LogiPat !("abc"|"def")
               will search for lines which don't contain either
                of the strings  :abc:  or  :def:

        :LogiPat "abc"&"def"
               will search for lines which contain both of the strings
                :abc:  and  :def:

        :let pat= LogiPat('!"abc"')
               will return the regular expression which will match
                all lines not containing  :abc: .  The double quotes
                are needed to pass normal patterns to LogiPat, and
                differentiate such patterns from boolean logic
                operators.


==============================================================================
4. Caveat                                               logiPat-caveat

        The "not" operator may be fragile; ie. it may not always play well
        with the & (logical-and) and | (logical-or) operators.  Please try out
        your patterns, possibly with :set hls, to insure that what is matching
        is what you want.


==============================================================================
3. LogiPat History                                      logiPat-history

        v4 Jun 22, 2015 * LogiPat has been picked up by Bram M for standard
                          plugin distribution; hence the name change
        v3 Sep 25, 2006 * LP_Or() fixed; it now encapsulates its output
                          in \%(...\) parentheses
           Dec 12, 2011 * :LPE added
                        * "" is mapped to a single " and left inside patterns
        v2 May 31, 2005 * LPF and LogiPatFlags commands weren't working
        v1 May 23, 2005 * initial release


==============================================================================
vim:tw=78:ts=8:ft=help

Quick links: help overview · quick reference · user manual toc · reference manual toc · faq