]> git.lyx.org Git - lyx.git/blobdiff - src/LyXAction.cpp
Pure HTML output for math macros.
[lyx.git] / src / LyXAction.cpp
index 10a8451fba2b7c073e9b8a45065f1e9453ad0f2c..af1f6041dea1bc9b0afe5c9c7dd491faca11c8bf 100644 (file)
@@ -57,6 +57,8 @@ namespace lyx {
  *
  * Doxygen template below. Some notes: Parameters should be set in uppercase
  * and put in <BRACKETS>, [<PARAM>] means optional one.
+ *
+ * Use spaces for indentation (doxy -> .lyx generator is tab-sensitive).
  */
 
 /*!
@@ -97,7 +99,8 @@ void LyXAction::init()
        // magnitudes faster.
 
        static bool init;
-       if (init) return;
+       if (init) 
+               return;
 
        struct ev_item {
                FuncCode action;
@@ -365,6 +368,14 @@ void LyXAction::init()
  * \endvar
  */
                { LFUN_LISTING_INSERT, "listing-insert", Noop, Edit },
+/*!
+ * \var lyx::FuncCode lyx::LFUN_PREVIEW_INSERT
+ * \li Action: Inserts a new preview inset.
+ * \li Syntax: preview-insert
+ * \li Origin: vfr, 28 Mar 2010
+ * \endvar
+ */
+               { LFUN_PREVIEW_INSERT, "preview-insert", Noop, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_TAB_INSERT
  * \li Action: Insert a tab into a listings inset.
@@ -414,7 +425,8 @@ void LyXAction::init()
                      textclass: name of textclass (e.g. article) \n
                      menu: name of lfun used in menu  \n
                      icon: name of lfun used in toolbar \n
-                     buffer: "name"|"path"|"class"
+                     buffer: "name"|"path"|"class"|"vcs-tree-revision"|
+                              "vcs-revision"|"vcs-author"|"vcs-date"|"vcs-time"
  * \li Sample: command-sequence info-insert buffer path; info-insert buffer name
  * \li Origin: bpeng, 7 Oct 2007
  * \endvar
@@ -574,16 +586,6 @@ void LyXAction::init()
  * \endvar
  */
                { LFUN_NOTE_NEXT, "note-next", ReadOnly, Edit },
-/*!
- * \var lyx::FuncCode lyx::LFUN_NOTES_MUTATE
- * \li Action: Changes all Note insets of a particular type (source)
-               to a different type (target) fot the current document.
- * \li Syntax: notes-mutate <SOURCE> <TARGET>
- * \li Params: <SOURCE/TARGET>: Note|Comment|Greyedout
- * \li Origin: sanda, 18 Jun 2008
- * \endvar
- */
-               { LFUN_NOTES_MUTATE, "notes-mutate", Argument, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_PHANTOM_INSERT
  * \li Action: Inserts phantom on the current cursor postion,
@@ -606,6 +608,7 @@ void LyXAction::init()
 /*!
  * \var lyx::FuncCode lyx::LFUN_ESCAPE
  * \li Action: Clears the selection. If no text is selected call #LFUN_FINISHED_FORWARD.
+               Inside math mode jumps out of the math inset.
  * \li Syntax: escape
  * \li Origin: Lgb, 17 May 2001
  * \endvar
@@ -989,6 +992,28 @@ void LyXAction::init()
  * \endvar
  */
                { LFUN_WORD_LOWCASE, "word-lowcase", Noop, Edit },
+/*!
+ * \var lyx::FuncCode lyx::LFUN_SPELLING_ADD
+ * \li Action: Add the word under the cursor to the respective
+ *             spell checker dictionary.
+ * \li Syntax: spelling-add [<STRING>] [<LANG>]
+ * \li Params: <WORD>: word to add
+               <LANG>: language name (see file languages)
+ * \li Origin: JSpitzm, 18 Jan 2010
+ * \endvar
+ */
+               { LFUN_SPELLING_ADD, "spelling-add", ReadOnly, Edit },
+/*!
+ * \var lyx::FuncCode lyx::LFUN_SPELLING_IGNORE
+ * \li Action: Let the spell checker ignore the word under the cursor
+ *             in the current session for the given language.
+ * \li Syntax: spelling-ignore [<WORD>] [<LANG>]
+ * \li Params: <WORD>: word to ignore
+               <LANG>: language name (see file languages)
+ * \li Origin: JSpitzm, 18 Jan 2010
+ * \endvar
+ */
+               { LFUN_SPELLING_IGNORE, "spelling-ignore", ReadOnly, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_THESAURUS_ENTRY
  * \li Action: Look up thesaurus entries with respect to the word under the cursor.
@@ -1082,6 +1107,17 @@ void LyXAction::init()
  */
                { LFUN_INSET_SELECT_ALL, "inset-select-all", ReadOnly, Edit },
 
+/*!
+ * \var lyx::FuncCode lyx::LFUN_SECTION_SELECT
+ * \li Action: Selects the whole section.
+ * \li Notion: The cursor should be in a section heading
+               before calling this lfun.
+ * \li Syntax: section-select
+ * \li Origin: vfr, 05 May 2009
+ * \endvar
+ */
+               { LFUN_SECTION_SELECT, "section-select", ReadOnly, Edit },
+
 /*!
  * \var lyx::FuncCode lyx::LFUN_LINE_BEGIN
  * \li Action: Move the cursor to the begining of the (screen) line.
@@ -2006,25 +2042,6 @@ void LyXAction::init()
  * \endvar
  */
                { LFUN_OUTLINE_OUT, "outline-out", Noop, Edit },
-               
-/*!
- * \var lyx::FuncCode lyx::LFUN_OUTLINE_DRAGMOVE
- * \li Action: Moves the document section associated with the specified
-               heading to a specified location. Both the heading and the
-               target paragraph are specified by the paragraph ID numbers.
- * \li Notion: The heading is a paragraph with style Part/Chapter/Section/
-               etc. Id number of the paragraph is not the sequential number
-               seen on the screen, but an internal number that is unique
-               for all opened buffers (documents).
- * \li Syntax: outline-dragmove <PAR_ID_SECTION> <PAR_ID_DROP_POSITION>
- * \li Params: <PAR_ID_SECTION>: paragraph id of the section heading which
-                                 is to be moved. \n
-               <PAR_ID_DROP_POSITION>: the paragraph id where the section
-                                       will be moved to.
- * \li Origin: Rob Oakes, 22 June 2009
- * \endvar
- */
-               { LFUN_OUTLINE_DRAGMOVE, "outline-dragmove", Noop, Edit },
 
 /*!
  * \var lyx::FuncCode lyx::LFUN_INSET_EDIT
@@ -2036,43 +2053,20 @@ void LyXAction::init()
  * \li Origin: JSpitzm, 27 Apr 2006
  * \endvar
  */
                { LFUN_INSET_EDIT, "inset-edit", ReadOnly, Edit },
 
 /*!
  * \var lyx::FuncCode lyx::LFUN_TABULAR_INSERT
  * \li Action: Inserts table into the document.
+ * \li Notion: See #LFUN_INSET_MODIFY for some more details
+               about tabular modifications.
  * \li Syntax: tabular-insert [<ROWS> <COLUMNS>]
  * \li Params: In case no arguments are given show insert dialog.
  * \li Origin: Jug, 12 Apr 2000
  * \endvar
  */
                { LFUN_TABULAR_INSERT, "tabular-insert", Noop, Edit },
-/*!
- * \var lyx::FuncCode lyx::LFUN_TABULAR_FEATURE
- * \li Action: Sets various features to the table/cell on the current cursor position.
- * \li Notion: Various math-environment features are handled here as well, e.g.
-               add-vline-left/right for the Grid/Array environment
- * \li Syntax: tabular-feature <FEATURE> [<ARG>]
- * \li Params: <FEATURE>: append-row|append-column|delete-row|delete-column|copy-row|copy-column|
-                       toggle-line-top|toggle-line-bottom|toggle-line-left|toggle-line-right|
-                       align-left|align-right|align-center|align-block|valign-top|valign-bottom|
-                       valign-middle|longtabular-align-left|longtabular-align-center|
-                       longtabular-align-right|m-align-left|m-align-right|m-align-center|
-                       m-valign-top|m-valign-bottom|m-valign-middle|multicolumn|set-all-lines|
-                       unset-all-lines|set-longtabular|unset-longtabular|set-pwidth|set-mpwidth|
-                       set-rotate-tabular|unset-rotate-tabular|toggle-rotate-tabular|
-                       set-rotate-cell|unset-rotate-cell|toggle-rotate-cell|set-usebox|set-lthead|
-                       unset-lthead|set-ltfirsthead|unset-ltfirsthead|set-ltfoot|unset-ltfoot|
-                       set-ltlastfoot|unset-ltlastfoot|set-ltnewpage|toggle-ltcaption|
-                       set-special-column|set-special-multi|set-booktabs|unset-booktabs|
-                       set-top-space|set-bottom-space|set-interline-space|set-border-lines|
-                       tabular-valign-top|tabular-valign-middle|tabular-valign-bottom \n
-               <ARG>: additional argument for some commands, use debug mode to explore its values.
- * \li Origin: Jug, 28 Jul 2000
- * \endvar
- */
-               { LFUN_TABULAR_FEATURE, "tabular-feature", Noop, Edit },
+
 /*!
  * \var lyx::FuncCode lyx::LFUN_CELL_BACKWARD
  * \li Action: Moves the cursor to the previous cell inside the table.
@@ -2156,7 +2150,8 @@ void LyXAction::init()
                         R - Reload - ensure that the document is saved and reload it after command execution \n
                         M - Message - ask for input string (commit message)\n
                 <PATH>: path where to start. $$p will be replaced by the current document path.\n
-                <COMMAND>: command to execute. $$i/$$p/$$m will be replaced by the current document/path/message.
+                <COMMAND>: command to execute. $$i/$$p/$$m will be replaced by the current
+                           document(with absolute path)/path/message.
  * \li Sample: vc-command DR $$p "svn up"
  * \li Origin: sanda, 13 Jan 2009
  * \endvar
@@ -2181,6 +2176,27 @@ void LyXAction::init()
  * \endvar
  */
                { LFUN_VC_REPO_UPDATE, "vc-repo-update", ReadOnly, System },
+/*!
+ * \var lyx::FuncCode lyx::LFUN_VC_COMPARE
+ * \li Action: Compares two revisions of the same file under version control.
+ * \li Notion: This is currently implemented only for SVN and RCS.
+ * \li Syntax: vc-compare <REV1> [<REV2>]
+ * \li Params: Revision number either points directly to commit in history
+               or if negative number -x it points to last commit - x.\n
+              In RCS we subtract only in the last number of revision specification.
+               Special case "0" is reserved for the last committed revision.\n
+               <REV1>: Older file.\n
+              <REV2>: Newer file. Used only if REV1 > 0.
+ * \li Sample: Compare current document against last commit\n
+               vc-compare 0
+ * \li Sample: Compare current document against current revision - 5 commits\n
+               vc-compare -5
+ * \li Sample: Compare revisions 120 and 155\n
+               vc-compare 120 155
+ * \li Origin: sanda, 12 Feb 2010
+ * \endvar
+ */
+               { LFUN_VC_COMPARE, "vc-compare", ReadOnly, System },
 
 /*!
  * \var lyx::FuncCode lyx::LFUN_CHANGES_TRACK
@@ -2287,7 +2303,7 @@ void LyXAction::init()
  * \var lyx::FuncCode lyx::LFUN_INSET_INSERT
  * \li Action: Insert new inset (type given by the parameters).
  * \li Syntax: inset-insert <INSET> <ARGS>
- * \li Params: <INSET>: <bibitem|bibtex|cite|ert|listings|external|graphics|
+ * \li Params: <INSET>: <bibitem|bibtex|cite|ert|listings|external|graphics|tabular
                          hyperlink|include|index|label|nomencl|vspace|ref|toc>\n
                <ARGS>: depends on the given inset. Use "lyx -dbg action" to explore.
  * \li Sample: inset-insert ref LatexCommand <Format> reference "<label name>"\end_inset \n
@@ -2304,28 +2320,38 @@ void LyXAction::init()
                { LFUN_INSET_INSERT, "inset-insert", Noop, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_INSET_MODIFY
- * \li Action: Modify existing inset.
+ * \li Action: Modify some properties of an inset.
  * \li Notion: Used for bibitem, bibtex, box, branch, command, ert, external,
-                        floats, graphics, include, label, listings, note,
-                        phantom, ref, space, tabular, vspace, wrap insets.
+                        floats, graphics, include, index, info, label, 
+                        listings, newline, newpage, nomencl, note, phantom, 
+                        ref, space, tabular, vspace, wrap insets.
  * \li Syntax: inset-modify <INSET> <ARGS>
- * \li Params: See #LFUN_INSET_INSERT for further details.
- * \endvar
- */
-               { LFUN_INSET_MODIFY, "", Noop, Hidden },
-/*!
- * \var lyx::FuncCode lyx::LFUN_NEXT_INSET_MODIFY
- * \li Action: Modify the inset at cursor position, if there is one.
- * \li Notion: Used for bibitem, bibtex, box, branch, command, ert, external,
-                        floats, graphics, include, label, listings, note,
-                        phantom, ref, space, tabular, vspace, wrap insets.
- * \li Syntax: next-inset-modify <INSET> <ARGS>
- * \li Syntax: next-inset-modify changetype <TYPE>
- * \li Params: See #LFUN_INSET_INSERT for further details.
- * \li Origin: JSpitzm, 23 Mar 2008
+ * \li Syntax: inset-modify changetype <TYPE>
+ * \li Syntax: inset-modify tabular <FEATURE> [<ARG>]
+ * \li Params: Generally see #LFUN_INSET_INSERT for further details.\n
+               In case that <INSET> is "tabular" various math-environment features
+               are handled as well, e.g. add-vline-left/right for the Grid/Array environment.\n
+               <FEATURE>: append-row|append-column|delete-row|delete-column|copy-row|copy-column|
+                       toggle-line-top|toggle-line-bottom|toggle-line-left|toggle-line-right|
+                       align-left|align-right|align-center|align-block|valign-top|valign-bottom|
+                       valign-middle|longtabular-align-left|longtabular-align-center|
+                       longtabular-align-right|m-align-left|m-align-right|m-align-center|
+                       m-valign-top|m-valign-bottom|m-valign-middle|multicolumn|set-all-lines|
+                       unset-all-lines|set-longtabular|unset-longtabular|set-pwidth|set-mpwidth|
+                       set-rotate-tabular|unset-rotate-tabular|toggle-rotate-tabular|
+                       set-rotate-cell|unset-rotate-cell|toggle-rotate-cell|set-usebox|set-lthead|
+                       unset-lthead|set-ltfirsthead|unset-ltfirsthead|set-ltfoot|unset-ltfoot|
+                       set-ltlastfoot|unset-ltlastfoot|set-ltnewpage|toggle-ltcaption|
+                       set-special-column|set-special-multicolumn|set-special-multirow|
+                       set-booktabs|unset-booktabs|set-top-space|set-bottom-space|
+                       set-interline-space|set-border-lines|tabular-valign-top|
+                       tabular-valign-middle|tabular-valign-bottom \n
+               <ARG>: additional argument for some commands, use debug mode to explore its values.
+ * \li Sample: inset-modify note Note Comment
+ * \li Sample: inset-modify changetype Ovalbox
  * \endvar
  */
-               { LFUN_NEXT_INSET_MODIFY, "next-inset-modify", Noop, Edit },
+               { LFUN_INSET_MODIFY, "inset-modify", AtPoint, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_INSET_DIALOG_UPDATE
  * \li Action: Updates the values inside the dialog from the inset.
@@ -2373,6 +2399,33 @@ void LyXAction::init()
  * \endvar
  */
                { LFUN_ALL_INSETS_TOGGLE, "all-insets-toggle", ReadOnly, Edit },
+/*!
+ * \var lyx::FuncCode lyx::LFUN_INSET_FORALL
+ * \li Action: Apply the given commands on insets of a given name.
+ * \li Notion: WARNING: use at your own risks; this function gives
+               you too many ways of shooting yourself in the foot.
+               A typical example is
+                   inset-forall Note note-insert
+               which starts an infinite loop. This is mitigated by the fact
+               that the number of actions is arbitrarily limited to 10000.
+ * \li Syntax: inset-forall <NAME> <LFUN-COMMAND> \n
+               <NAME>: Type of Inset. If <NAME> is *, all insets are matched.
+               The name is used like for InsetLayout in layout files: "Note"
+               matches all note insets, while "Note:Note" only matches LyX
+               yellow note insets.
+ * \li Sample: Remove all index insets: \n
+                  inset-forall Index delete-char-forward \n
+               Close all Notes (also works for a particular branch, for example): \n
+                  inset-forall Note inset-toggle close \n
+               Transform all yellow notes to comments \n
+                   inset-forall Note:Note inset-modify note Note Comment \n
+               Try to put LyX in an infinite loop if there is at least a Note: \n
+                  inset-forall Note char-backward
+ * \li Origin: lasgouttes, 27 Nov 2009
+ * \endvar
+ */
+               { LFUN_INSET_FORALL, "inset-forall", ReadOnly, Edit },
+
 /*!
  * \var lyx::FuncCode lyx::LFUN_GRAPHICS_RELOAD
  * \li Action: Reloads the image if necessary.
@@ -2778,7 +2831,7 @@ void LyXAction::init()
  * \li Origin: Edmar, 23 Dec 1998
  * \endvar
  */
-               { LFUN_SERVER_GOTO_FILE_ROW, "server-goto-file-row", ReadOnly, System },
+               { LFUN_SERVER_GOTO_FILE_ROW, "server-goto-file-row", ReadOnly | NoBuffer, System },
 /*!
  * \var lyx::FuncCode lyx::LFUN_SERVER_NOTIFY
  * \li Action: Sends notify message about the last key-sequence to client.
@@ -2956,11 +3009,10 @@ void LyXAction::init()
                { LFUN_BUFFER_RELOAD, "buffer-reload", ReadOnly, Buffer },
 /*!
  * \var lyx::FuncCode lyx::LFUN_BUFFER_SWITCH
- * \li Action: Switch to the given buffer.
- * \li Notion: This is useful also in case you need simultaneously more views of the edited
-               document in different LyX windows.
- * \li Syntax: buffer-new-template <BUFFER>
- * \li Params: <BUFFER>: already opened document which is to be shown.
+ * \li Action: Display/switch to the given buffer.
+ * \li Syntax: buffer-switch <BUFFER>
+ * \li Params: <BUFFER>: path and filename of already opened (but possibly hidden)
+                         document which is to be shown.
  * \endvar
  */
                { LFUN_BUFFER_SWITCH, "buffer-switch", NoBuffer | ReadOnly, Buffer },
@@ -3433,25 +3485,14 @@ void LyXAction::init()
  */
                { LFUN_BUFFER_ZOOM_OUT, "buffer-zoom-out", ReadOnly, Buffer },
 
-/*!
- * \var lyx::FuncCode lyx::LFUN_SECTION_SELECT
- * \li Action: Selects the whole section.
- * \li Notion: The cursor should be in a section heading 
-               before calling this lfun.
- * \li Syntax: section-select
- * \li Origin: vfr, 05 May 2009
- * \endvar
- */
-               { LFUN_SECTION_SELECT, "section-select", ReadOnly, Edit },
 
 
                { LFUN_NOACTION, "", Noop, Hidden }
 #ifndef DOXYGEN_SHOULD_SKIP_THIS
        };
 
-       for (int i = 0; items[i].action != LFUN_NOACTION; ++i) {
+       for (int i = 0; items[i].action != LFUN_NOACTION; ++i)
                newFunc(items[i].action, items[i].name, items[i].attrib, items[i].type);
-       }
 
        init = true;
 }