*if_sniff.txt*	For Vim version 7.3.  Last change: 2005 Mar 29


		  VIM REFERENCE MANUAL
		by Anton Leherbauer (toni@takefive.co.at)


SNiFF+ and Vim				    *sniff*

1. Introduction				    |sniff-intro|
2. Commands				    |sniff-commands|
3. Compiling Vim with SNiFF+ interface	    |sniff-compiling|

{Vi does not have any of these commands}  *E275* *E274* *E276* *E278* *E279*

The SNiFF+ interface only works, when Vim was compiled with the |+sniff|
feature.

==============================================================================
1. Introduction					*sniff-intro*

The following features for the use with SNiFF+ are available:

   * Vim can be used for all editing requests
   * SNiFF+ recognizes and updates all browsers when a file is saved in Vim
   * SNiFF+ commands can be issued directly from Vim

How to use Vim with SNiFF+
   1. Make sure SNiFF+ is running.
   2. In the Editor view of the Preferences dialog set the Field named
      'External Editor' to 'Emacs/Vim'.
   4. Start Vim
   5. Connect to SNiFF+ (:sniff connect)

Once a connection is established, SNiFF+ uses Vim for all requests to show or
edit source code.  On the other hand, you can send queries to SNiFF+ with the
:sniff command.

==============================================================================
2. Commands				    *sniff-commands*

			    *:sniff* *:sni*
:sni[ff] request [symbol]   Send request to sniff with optional symbol.
			    {not in Vi}
:sni[ff]		    Display all possible requests and the connection
			    status

Most requests require a symbol (identifier) as parameter.  If it is omitted,
Vim will use the current word under the cursor.
The available requests are listed below:

request		      mapping	description
-------------------------------------------------------------------------------
connect			sc	Establish connection with SNiFF+.
				Make sure SNiFF+ is prepared for this in the
				Preferences
disconnect		sq	Disconnect from SNiFF+.  You can reconnect any
				time with :sniff connect (or 'sc')
toggle			st	Toggle between implementation
				and definition file
find-symbol		sf	Load the symbol into a Symbol Browser
browse-class		sb	Loads the class into a Class Browser
superclass		ss	Edit superclass of symbol
overridden		so	Edit overridden method of symbol
retrieve-file		srf	Retrieve symbol in current file
retrieve-project	srp	Retrieve symbol in current project
retrieve-all-projects	srP	Retrieve symbol in all projects
retrieve-next		sR	Retrieve symbol using current Retriever
				settings
goto-symbol		sg	Goto definition or implementation of symbol
hierarchy		sh	Load symbol into the Hierarchy Browser
restr-hier		sH	same as above but show only related classes
xref-to			sxt	Start a refers-to query on symbol and
				load the results into the Cross Referencer
xref-by			sxb	Start a referred-by query on symbol
xref-has		sxh	Start a refers-to components query on symbol
xref-used-by		sxu	Start a referred-by as component query on
				symbol
show-docu		sd	Show documentation of symbol
gen-docu		sD	Generate documentation of symbol

The mappings are defined in a file 'sniff.vim', which is part of every SNiFF+
product ($SNIFF_DIR/config/sniff.vim).  This file is sourced whenever Vim
connects to SNiFF+.

==============================================================================
3. Compiling Vim with SNiFF+ interface		*sniff-compiling*

To compile Vim with SNiFF+ support, you need two source files of the extra
archive: if_sniff.c and if_sniff.h.
On Unix: Edit the Makefile and uncomment the line "--enable-sniff".  Or run
configure manually with this argument.
On NT: Specify SNIFF=yes with your make command.

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