diff options
author | Perberos <[email protected]> | 2011-11-07 16:46:58 -0300 |
---|---|---|
committer | Perberos <[email protected]> | 2011-11-07 16:46:58 -0300 |
commit | 528c1e5ff51e213936e800fc5a9a25da99c0bdf2 (patch) | |
tree | 77f8aa456b09367ba81f04d4562fc935f898a951 /plugins/taglist | |
download | pluma-528c1e5ff51e213936e800fc5a9a25da99c0bdf2.tar.bz2 pluma-528c1e5ff51e213936e800fc5a9a25da99c0bdf2.tar.xz |
initial
Diffstat (limited to 'plugins/taglist')
-rwxr-xr-x | plugins/taglist/HTML.tags.xml.in | 2672 | ||||
-rwxr-xr-x | plugins/taglist/Latex.tags.xml.in | 344 | ||||
-rwxr-xr-x | plugins/taglist/Makefile.am | 60 | ||||
-rwxr-xr-x | plugins/taglist/XSLT.tags.xml.in | 337 | ||||
-rwxr-xr-x | plugins/taglist/XUL.tags.xml.in | 536 | ||||
-rwxr-xr-x | plugins/taglist/gedit-taglist-plugin-panel.c | 776 | ||||
-rwxr-xr-x | plugins/taglist/gedit-taglist-plugin-panel.h | 89 | ||||
-rwxr-xr-x | plugins/taglist/gedit-taglist-plugin-parser.c | 655 | ||||
-rwxr-xr-x | plugins/taglist/gedit-taglist-plugin-parser.h | 68 | ||||
-rwxr-xr-x | plugins/taglist/gedit-taglist-plugin.c | 160 | ||||
-rwxr-xr-x | plugins/taglist/gedit-taglist-plugin.h | 85 | ||||
-rwxr-xr-x | plugins/taglist/taglist.gedit-plugin.desktop.in | 8 |
12 files changed, 5790 insertions, 0 deletions
diff --git a/plugins/taglist/HTML.tags.xml.in b/plugins/taglist/HTML.tags.xml.in new file mode 100755 index 00000000..116cc247 --- /dev/null +++ b/plugins/taglist/HTML.tags.xml.in @@ -0,0 +1,2672 @@ +<?xml version="1.0" encoding="UTF-8"?> +<TagList xmlns="http://gedit.sourceforge.net/some-location"> +<TagGroup _name="XHTML 1.0 - Tags" sort="true"> + + <Tag _name="Abbreviated form"> + <Begin><abbr title="</Begin> + <End>"></abbr></End> + </Tag> + + <Tag _name="Abbreviation"> + <Begin>abbr="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Accessibility key character"> + <Begin>accesskey="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Acronym"> + <Begin><acronym title="</Begin> + <End>"></acronym></End> + </Tag> + + <Tag _name="Align"> + <Begin>align="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Alignment character"> + <Begin>char="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Alternative"> + <Begin>alt="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Anchor URI"> + <Begin><a href="</Begin> + <End>"></a></End> + </Tag> + + <Tag _name="Anchor"> + <Begin><a id="</Begin> + <End>"></a></End> + </Tag> + +<!-- Deprecated since HTML 4.01, not supported in XHTML 1.0 Strict DTD. --> + <Tag _name="Applet class file code (deprecated)"> + <Begin>code="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Associated information"> + <Begin>content="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Author info"> + <Begin><address></Begin> + <End></address></End> + </Tag> + + <Tag _name="Axis related headers"> + <Begin>axis="</Begin> + <End>"</End> + </Tag> + +<!-- Deprecated since HTML 4.01, not supported in XHTML 1.0 Strict DTD. --> + <Tag _name="Background color (deprecated)"> + <Begin>bgcolor="</Begin> + <End>"</End> + </Tag> + +<!-- Deprecated since HTML 4.01, not supported in XHTML 1.0 Strict DTD. --> + <Tag _name="Background texture tile (deprecated)"> + <Begin>background="</Begin> + <End>"</End> + </Tag> + +<!-- Deprecated since HTML 4.01, not supported in XHTML 1.0 Strict DTD. --> + <Tag _name="Base font (deprecated)"> + <Begin><basefont></Begin> + </Tag> + + <Tag _name="Base URI"> + <Begin>codebase="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Bold"> + <Begin><b></Begin> + <End></b></End> + </Tag> + +<!-- Deprecated since HTML 4.01, not supported in XHTML 1.0 Strict DTD. --> + <Tag _name="Border (deprecated)"> + <Begin>border="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Cell rowspan"> + <Begin>rowspan="</Begin> + <End>"</End> + </Tag> + +<!-- Deprecated since HTML 4.01, not supported in XHTML 1.0 Strict DTD. --> + <Tag _name="Center (deprecated)"> + <Begin><center></Begin> + <End></center></End> + </Tag> + + <Tag _name="Character encoding of linked resource"> + <Begin>charset="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Checked state"> + <Begin>checked="checked"</Begin> + </Tag> + + <Tag _name="Citation"> + <Begin><cite></Begin> + <End></cite></End> + </Tag> + + <Tag _name="Cite reason for change"> + <Begin>cite="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Class implementation ID"> + <Begin>classid="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Class list"> + <Begin>class="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Clear text flow control"> + <Begin>clear="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Code content type"> + <Begin>codetype="</Begin> + <End>"</End> + </Tag> + +<!-- Deprecated since HTML 4.01, not supported in XHTML 1.0 Strict DTD. --> + <Tag _name="Color of selected links (deprecated)"> + <Begin>alink="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Column span"> + <Begin>colspan="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Columns"> + <Begin>cols="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Comment"> + <Begin><!-- </Begin> + <End> --></End> + </Tag> + + <Tag _name="Computer code fragment"> + <Begin><code></Begin> + <End></code></End> + </Tag> + + <!-- The "type" attribute is deprecated for the "ol" tag only, + since HTML 4.01, not supported in XHTML 1.0 Strict DTD. --> + <Tag _name="Content type (deprecated)"> + <Begin>type="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Coordinates"> + <Begin>coords="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Date and time of change"> + <Begin>datetime="YYYYMMDD"</Begin> + </Tag> + +<!-- NOTE: used in "object" tag --> + <Tag _name="Declare flag"> + <Begin>declare="declare"</Begin> + </Tag> + + <!-- Translators: DEFER is an optional attribute of the <script> tag. + It indicates that the script is not going to generate any document + content. The browser can continue parsing and drawing the page. --> + <Tag _name="Defer attribute"> + <Begin>defer="defer"</Begin> + </Tag> + + <Tag _name="Definition description"> + <Begin><dd></Begin> + <End></dd></End> + </Tag> + + <Tag _name="Definition list"> + <Begin><dl></Begin> + <End></dl></End> + </Tag> + + <Tag _name="Definition term"> + <Begin><dt></Begin> + <End></dt></End> + </Tag> + + <Tag _name="Deleted text"> + <Begin><del></Begin> + <End></del></End> + </Tag> + + <Tag _name="Directionality"> + <Begin>dir="</Begin> + <End>"</End> + </Tag> + +<!-- Deprecated since HTML 4.01, not supported in XHTML 1.0 Strict DTD. --> + <Tag _name="Directionality (deprecated)"> + <Begin><dir></Begin> + <End></dir></End> + </Tag> + + <Tag _name="Disabled"> + <Begin>disabled="disabled"</Begin> + </Tag> + + <Tag _name="DIV container"> + <Begin><div></Begin> + <End></div></End> + </Tag> + + <Tag _name="DIV Style container"> + <Begin><div style=></Begin> + <End></div></End> + </Tag> + + <Tag _name="Document base"> + <Begin><base href="</Begin> + <End>" /></End> + </Tag> + + <Tag _name="Document body"> + <Begin><body></Begin> + <End></body></End> + </Tag> + + <Tag _name="Document head"> + <Begin><head></Begin> + <End></head></End> + </Tag> + + <Tag _name="Element ID"> + <Begin>id="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Document title"> + <Begin><title></Begin> + <End></title></End> + </Tag> + + <Tag _name="Document type"> + <Begin><!DOCTYPE></Begin> + </Tag> + + <Tag _name="Emphasis"> + <Begin><em></Begin> + <End></em></End> + </Tag> + + <Tag _name="Encode type"> + <Begin>enctype="</Begin> + <End>"</End> + </Tag> + +<!-- Deprecated since HTML 4.01, not supported in XHTML 1.0 Strict DTD. --> + <Tag _name="Font face (deprecated)"> + <Begin>face="</Begin> + <End>"</End> + </Tag> + + <Tag _name="For label"> + <Begin>for="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Forced line break"> + <Begin><br /></Begin> + </Tag> + + <Tag _name="Form action handler"> + <Begin>action="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Form control group"> + <Begin><fieldset></Begin> + <End></fieldset></End> + </Tag> + + <Tag _name="Form field label text"> + <Begin><label></Begin> + <End></label></End> + </Tag> + + <Tag _name="Form input type"> + <Begin><input type="</Begin> + <End>" /></End> + </Tag> + + <Tag _name="Form input"> + <Begin><input /></Begin> + </Tag> + + <Tag _name="Form method"> + <Begin><form method="</Begin> + <End>"></form></End> + </Tag> + + <Tag _name="Form method"> + <Begin>method="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Form"> + <Begin><form></Begin> + <End></form></End> + </Tag> + + <Tag _name="Forward link"> + <Begin>rel="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Frame render parts"> + <Begin>frame="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Frame source"> + <Begin><frame src="</Begin> + <End>"></frame></End> + </Tag> + + <Tag _name="Frame target"> + <Begin>target="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Frame"> + <Begin><frame></Begin> + <End></frame></End> + </Tag> + + <Tag _name="Frame border"> + <Begin>frameborder="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Frameset columns"> + <Begin><frameset cols="</Begin> + <End>"></frameset></End> + </Tag> + + <Tag _name="Frameset rows"> + <Begin><frameset rows="</Begin> + <End>"></frameset></End> + </Tag> + + <Tag _name="Frameset"> + <Begin><frameset></Begin> + <End></frameset></End> + </Tag> + + <Tag _name="Frame spacing"> + <Begin>framespacing="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Generic embedded object"> + <Begin><object></Begin> + <End></object></End> + </Tag> + + <Tag _name="Generic metainformation"> + <Begin><meta content="</Begin> + <End>"></meta></End> + </Tag> + + <Tag _name="Generic span"> + <Begin><span></Begin> + <End></span></End> + </Tag> + + <Tag _name="Header cell IDs"> + <Begin>headers="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Heading 1"> + <Begin><h1></Begin> + <End></h1></End> + </Tag> + + <Tag _name="Heading 2"> + <Begin><h2></Begin> + <End></h2></End> + </Tag> + + <Tag _name="Heading 3"> + <Begin><h3></Begin> + <End></h3></End> + </Tag> + + <Tag _name="Heading 4"> + <Begin><h4></Begin> + <End></h4></End> + </Tag> + + <Tag _name="Heading 5"> + <Begin><h5></Begin> + <End></h5></End> + </Tag> + + <Tag _name="Heading 6"> + <Begin><h6></Begin> + <End></h6></End> + </Tag> + + <Tag _name="Height"> + <Begin>height="</Begin> + </Tag> + + <Tag _name="Horizontal rule"> + <Begin><hr /></Begin> + </Tag> + +<!-- Deprecated since HTML 4.01, not supported in XHTML 1.0 Strict DTD. --> + <Tag _name="Horizontal space (deprecated)"> + <Begin>hspace="</Begin> + <End>"</End> + </Tag> + + <Tag _name="HREF URI"> + <Begin>href="</Begin> + <End>"</End> + </Tag> + + <Tag _name="HTML root element"> + <Begin><html></Begin> + <End></html></End> + </Tag> + + <Tag _name="HTTP header name"> + <Begin>http-equiv="</Begin> + <End>"</End> + </Tag> + + <Tag _name="I18N BiDi override"> + <Begin><bdo></Begin> + <End></bdo></End> + </Tag> + + <Tag _name="Image map area"> + <Begin><area alt="</Begin> + <End>"></area></End> + </Tag> + + <Tag _name="Image map name"> + <Begin><map name="</Begin> + <End>"></map></End> + </Tag> + + <Tag _name="Image map"> + <Begin><map id="</Begin> + <End>"></map></End> + </Tag> + + <Tag _name="Image"> + <Begin><img id="</Begin> + <End>" src="" alt="" /></End> + </Tag> + + <Tag _name="Inline frame"> + <Begin><iframe></Begin> + <End></iframe></End> + </Tag> + + <Tag _name="Inserted text"> + <Begin><ins></Begin> + <End></ins></End> + </Tag> + + <Tag _name="Instance definition"> + <Begin><dfn></Begin> + <End></dfn></End> + </Tag> + + <Tag _name="Italic text"> + <Begin><i></Begin> + <End></i></End> + </Tag> + +<!-- Deprecated since HTML 4.01, not supported in XHTML 1.0 Strict DTD. --> + <Tag _name="Java applet (deprecated)"> + <Begin><applet height="</Begin> + <End>" width=""></applet></End> + </Tag> + + <Tag _name="Label"> + <Begin>label="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Language code"> + <Begin>hreflang="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Language code"> + <Begin>lang="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Large text style"> + <Begin><big></Begin> + <End></big></End> + </Tag> + +<!-- Deprecated since HTML 4.01, not supported in XHTML 1.0 Strict DTD. --> + <Tag _name="Link color (deprecated)"> + <Begin>link="</Begin> + <End>"</End> + </Tag> + + <Tag _name="List item"> + <Begin><li></Begin> + <End></li></End> + </Tag> + + <Tag _name="List of MIME types for file upload"> + <Begin>accept="</Begin> + <End>"</End> + </Tag> + + <Tag _name="List of supported character sets"> + <Begin>accept-charset="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Local change to font"> + <Begin><font></Begin> + <End></font></End> + </Tag> + + <Tag _name="Long description link"> + <Begin>longdesc="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Long quotation"> + <Begin><blockquote></Begin> + <End></blockquote></End> + </Tag> + +<!-- Supported in XHTML 1.0 Frameset DTD only. --> + <Tag _name="Margin pixel height"> + <Begin>marginheight="</Begin> + <End>"</End> + </Tag> + +<!-- Supported in XHTML 1.0 Frameset DTD only. --> + <Tag _name="Margin pixel width"> + <Begin>marginwidth="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Maximum length of text field"> + <Begin>maxlength="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Output media"> + <Begin>media="</Begin> + <End>"</End> + </Tag> + + <!-- Here I take some liberties: There's no mandatory attributes, + but those are most common, and will likely be used. --> + <Tag _name="Media-independent link"> + <Begin><link rel="</Begin> + <End>" type="" href="" /></End> + </Tag> + +<!-- Deprecated since HTML 4.01, not supported in XHTML 1.0 Strict DTD. --> + <Tag _name="Menu list (deprecated)"> + <Begin><menu></Begin> + <End></menu></End> + </Tag> + + <Tag _name="Multi-line text field"> + <Begin><textarea cols="</Begin> + <End>" rows=""></textarea></End> + </Tag> + + <Tag _name="Multiple"> + <Begin>multiple="multiple"</Begin> + </Tag> + + <Tag _name="Name"> + <Begin>name="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Named property value"> + <Begin><param name="</Begin> + <End>"></param></End> + </Tag> + + <Tag _name="No frames"> + <Begin><noframes></Begin> + <End></noframes></End> + </Tag> + + <Tag _name="No resize"> + <Begin>noresize="noresize"</Begin> + </Tag> + + <Tag _name="No script"> + <Begin><noscript></Begin> + <End></noscript></End> + </Tag> + +<!-- Deprecated since HTML 4.01, not supported in XHTML 1.0 Strict DTD. --> + <Tag _name="No shade (deprecated)"> + <Begin>noshade="noshade"</Begin> + </Tag> + + <Tag _name="No URI"> + <Begin>nohref="</Begin> + <End>"</End> + </Tag> + +<!-- Deprecated since HTML 4.01, not supported in XHTML 1.0 Strict DTD. --> + <Tag _name="No word wrap (deprecated)"> + <Begin>nowrap="nowrap"</Begin> + </Tag> + +<!-- Deprecated since HTML 4.01, not supported in XHTML 1.0 Strict DTD. --> + <Tag _name="Object applet file (deprecated)"> + <Begin>object="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Object data reference"> + <Begin>data="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Offset for alignment character"> + <Begin>charoff="</Begin> + <End>"</End> + </Tag> + + <Tag _name="OnBlur event"> + <Begin>onblur="</Begin> + <End>"</End> + </Tag> + + <Tag _name="OnChange event"> + <Begin>onchange="</Begin> + <End>"</End> + </Tag> + + <Tag _name="OnClick event"> + <Begin>onclick="</Begin> + <End>"</End> + </Tag> + + <Tag _name="OnDblClick event"> + <Begin>ondbclick="</Begin> + <End>"</End> + </Tag> + + <Tag _name="OnFocus event"> + <Begin>onfocus="</Begin> + <End>"</End> + </Tag> + + <Tag _name="OnKeyDown event"> + <Begin>onkeydown="</Begin> + <End>"</End> + </Tag> + + <Tag _name="OnKeyPress event"> + <Begin>onkeypress="</Begin> + <End>"</End> + </Tag> + + <Tag _name="OnKeyUp event"> + <Begin>onkeyup="</Begin> + <End>"</End> + </Tag> + + <Tag _name="OnLoad event"> + <Begin>onload="</Begin> + <End>"</End> + </Tag> + + <Tag _name="OnMouseDown event"> + <Begin>onmousedown="</Begin> + <End>"</End> + </Tag> + + <Tag _name="OnMouseMove event"> + <Begin>onmousemove="</Begin> + <End>"</End> + </Tag> + + <Tag _name="OnMouseOut event"> + <Begin>onmouseout="</Begin> + <End>"</End> + </Tag> + + <Tag _name="OnMouseOver event"> + <Begin>onmouseover="</Begin> + <End>"</End> + </Tag> + + <Tag _name="OnMouseUp event"> + <Begin>onmouseup="</Begin> + <End>"</End> + </Tag> + + <Tag _name="OnReset event"> + <Begin>onreset="</Begin> + <End>"</End> + </Tag> + + <Tag _name="OnSelect event"> + <Begin>onselect="</Begin> + <End>"</End> + </Tag> + + <Tag _name="OnSubmit event"> + <Begin>onsubmit="</Begin> + <End>"</End> + </Tag> + + <Tag _name="OnUnload event"> + <Begin>onunload="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Option group"> + <Begin><optgroup label="</Begin> + <End>"></optgroup></End> + </Tag> + + <Tag _name="Option selector"> + <Begin><select></Begin> + <End></select></End> + </Tag> + + <Tag _name="Ordered list"> + <Begin><ol></Begin> + <End></ol></End> + </Tag> + + <Tag _name="Paragraph class"> + <Begin><p class="</Begin> + <End>"></p></End> + </Tag> + + <Tag _name="Paragraph style"> + <Begin><p style="</Begin> + <End>"></p></End> + </Tag> + + <Tag _name="Paragraph"> + <Begin><p></Begin> + <End></p></End> + </Tag> + + <Tag _name="Preformatted text"> + <Begin><pre></Begin> + <End></pre></End> + </Tag> + + <Tag _name="Profile metainfo dictionary"> + <Begin>profile="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Push button"> + <Begin><button></Begin> + <End></button></End> + </Tag> + + <Tag _name="ReadOnly text and password"> + <Begin>readonly="readonly"</Begin> + </Tag> + +<!-- Deprecated since HTML 4.01, not supported in XHTML 1.0 Strict DTD. --> + <Tag _name="Reduced spacing (deprecated)"> + <Begin>compact="compact_rendering"</Begin> + </Tag> + + <Tag _name="Reverse link"> + <Begin>rev="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Rows"> + <Begin>rows="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Rulings between rows and columns"> + <Begin>rules="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Sample program output, scripts"> + <Begin><samp></Begin> + <End></samp></End> + </Tag> + + <Tag _name="Scope covered by header cells"> + <Begin>scope="</Begin> + <End>"</End> + </Tag> + +<!-- Deprecated since HTML 4.01, not supported in XHTML 1.0 Strict DTD. --> + <Tag _name="Script language name"> + <Begin>language="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Script statements"> + <Begin><script type="</Begin> + <End>"></script></End> + </Tag> + + <Tag _name="Scrollbar"> + <Begin>scrolling="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Selectable option"> + <Begin><option></Begin> + <End></option></End> + </Tag> + + <Tag _name="Selected"> + <Begin>selected="selected"</Begin> + </Tag> + + <Tag _name="Server-side image map"> + <Begin>ismap="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Shape"> + <Begin>shape="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Short inline quotation"> + <Begin><q></Begin> + <End></q></End> + </Tag> + +<!-- Deprecated since HTML 4.01, not supported in XHTML 1.0 Strict DTD. --> + <Tag _name="Size (deprecated)"> + <Begin>size="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Small text style"> + <Begin><small></Begin> + <End></small></End> + </Tag> + + <Tag _name="Source"> + <Begin>src="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Space-separated archive list"> + <Begin>archive="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Spacing between cells"> + <Begin>cellspacing="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Spacing within cells"> + <Begin>cellpadding="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Span"> + <Begin>span="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Standby load message"> + <Begin>standby="</Begin> + <End>"</End> + </Tag> + +<!-- Deprecated since HTML 4.01, not supported in XHTML 1.0 Strict DTD. --> + <Tag _name="Starting sequence number (deprecated)"> + <Begin>start="</Begin> + <End>"</End> + </Tag> + +<!-- Deprecated since HTML 4.01, not supported in XHTML 1.0 Strict DTD. --> + <Tag _name="Strike-through text style (deprecated)"> + <Begin><s></Begin> + <End></s></End> + </Tag> + +<!-- Deprecated since HTML 4.01, not supported in XHTML 1.0 Strict DTD. --> + <Tag _name="Strike-through text (deprecated)"> + <Begin><strike></Begin> + <End></strike></End> + </Tag> + + <Tag _name="Strong emphasis"> + <Begin><strong></Begin> + <End></strong></End> + </Tag> + + <Tag _name="Style info"> + <Begin><style type="text/css"></Begin> + <End></style></End> + </Tag> + + <Tag _name="Style info"> + <Begin>style="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Subscript"> + <Begin><sub></Begin> + <End></sub></End> + </Tag> + + <Tag _name="Superscript"> + <Begin><sup></Begin> + <End></sup></End> + </Tag> + + <Tag _name="Table body"> + <Begin><tbody></Begin> + <End></tbody></End> + </Tag> + + <Tag _name="Table caption"> + <Begin><caption></Begin> + <End></caption></End> + </Tag> + + <Tag _name="Table column group properties"> + <Begin><colgroup></Begin> + <End></colgroup></End> + </Tag> + + <Tag _name="Table column properties"> + <Begin><col></Begin> + <End></col></End> + </Tag> + + <Tag _name="Table data cell"> + <Begin><td></Begin> + <End></td></End> + </Tag> + + <Tag _name="Table footer"> + <Begin><tfoot></Begin> + <End></tfoot></End> + </Tag> + + <Tag _name="Table header cell"> + <Begin><th></Begin> + <End></th></End> + </Tag> + + <Tag _name="Table header"> + <Begin><thead></Begin> + <End></thead></End> + </Tag> + + <Tag _name="Table row"> + <Begin><tr></Begin> + <End></tr></End> + </Tag> + + <Tag _name="Table summary"> + <Begin>summary="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Table"> + <Begin><table></Begin> + <End></table></End> + </Tag> + + <Tag _name="Target - Blank"> + <Begin><a target="_blank"></Begin> + <End></a></End> + </Tag> + + <Tag _name="Target - Parent"> + <Begin><a target="_parent"></Begin> + <End></a></End> + </Tag> + + <Tag _name="Target - Self"> + <Begin><a target="_self"></Begin> + <End></a></End> + </Tag> + + <Tag _name="Target - Top"> + <Begin><a target="_top"></Begin> + <End></a></End> + </Tag> + + <Tag _name="Teletype or monospace text style"> + <Begin><tt></Begin> + <End></tt></End> + </Tag> + +<!-- Deprecated since HTML 4.01, not supported in XHTML 1.0 Strict DTD. --> + <Tag _name="Text color (deprecated)"> + <Begin>color="</Begin> + <End>"</End> + </Tag> + +<!-- Deprecated since HTML 4.01, not supported in XHTML 1.0 Strict DTD. --> + <Tag _name="Text color (deprecated)"> + <Begin>text="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Text entered by user"> + <Begin><kbd></Begin> + <End></kbd></End> + </Tag> + + <Tag _name="Title"> + <Begin>title="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Underlined text style"> + <Begin><u></Begin> + <End></u></End> + </Tag> + + <Tag _name="Unordered list"> + <Begin><ul></Begin> + <End></ul></End> + </Tag> + + <Tag _name="Use image map"> + <Begin>usemap="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Value interpretation"> + <Begin>valuetype="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Value"> + <Begin>value="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Variable or program argument"> + <Begin><var></Begin> + <End></var></End> + </Tag> + + <Tag _name="Vertical cell alignment"> + <Begin>valign="</Begin> + <End>"</End> + </Tag> + +<!-- Deprecated since HTML 4.01, not supported in XHTML 1.0 Strict DTD. --> + <Tag _name="Vertical space (deprecated)"> + <Begin>vspace="</Begin> + <End>"</End> + </Tag> + +<!-- Deprecated since HTML 4.01, not supported in XHTML 1.0 Strict DTD. --> + <Tag _name="Visited link color (deprecated)"> + <Begin>vlink="</Begin> + <End>"</End> + </Tag> + + <Tag _name="Width"> + <Begin>width="</Begin> + <End>"</End> + </Tag> + +</TagGroup> + +<TagGroup _name="HTML - Tags" sort="true"> + + <Tag _name="Abbreviated form"> + <Begin><abbr></Begin> + <End></abbr></End> + </Tag> + + <Tag _name="Abbreviation"> + <Begin>abbr=</Begin> + </Tag> + + <Tag _name="Above"> + <Begin><above></Begin> + </Tag> + + <Tag _name="Accessibility key character"> + <Begin>accesskey=</Begin> + </Tag> + + <Tag _name="Acronym"> + <Begin><acronym></Begin> + <End></acronym></End> + </Tag> + + <Tag _name="Align"> + <Begin>align=</Begin> + </Tag> + + <Tag _name="Alignment character"> + <Begin>char=</Begin> + </Tag> + + <Tag _name="Alternative"> + <Begin>alt=</Begin> + </Tag> + + <Tag _name="Anchor URI"> + <Begin><a href=></Begin> + <End></a></End> + </Tag> + + <Tag _name="Anchor"> + <Begin><a></Begin> + <End></a></End> + </Tag> + + <Tag _name="Applet class file code"> + <Begin>code=</Begin> + </Tag> + + <Tag _name="Array"> + <Begin><array></Begin> + </Tag> + + <Tag _name="Associated information"> + <Begin>content=</Begin> + </Tag> + + <Tag _name="Author info"> + <Begin><address></Begin> + <End></address></End> + </Tag> + + <Tag _name="Axis related headers"> + <Begin>axis=</Begin> + </Tag> + + <Tag _name="Background color"> + <Begin>bgcolor=</Begin> + </Tag> + + <Tag _name="Background texture tile"> + <Begin>background=</Begin> + </Tag> + + <Tag _name="Base font"> + <Begin><basefont></Begin> + </Tag> + + <Tag _name="Base URI"> + <Begin>codebase=</Begin> + </Tag> + + <Tag _name="Bold"> + <Begin><b></Begin> + <End></b></End> + </Tag> + + <Tag _name="Border color"> + <Begin>bordercolor=</Begin> + </Tag> + + <Tag _name="Border"> + <Begin>border=</Begin> + </Tag> + + <Tag _name="Cell rowspan"> + <Begin>rowspan=</Begin> + </Tag> + + <Tag _name="Center"> + <Begin><center></Begin> + <End></center></End> + </Tag> + + <Tag _name="Character encoding of linked resource"> + <Begin>charset=</Begin> + </Tag> + + <Tag _name="Checked (state)"> + <Begin>checked</Begin> + </Tag> + + <Tag _name="Citation"> + <Begin><cite></Begin> + <End></cite></End> + </Tag> + + <Tag _name="Cite reason for change"> + <Begin>cite=</Begin> + </Tag> + + <Tag _name="Class implementation ID"> + <Begin>classid=</Begin> + </Tag> + + <Tag _name="Class list"> + <Begin>class=</Begin> + </Tag> + + <Tag _name="Clear text flow control"> + <Begin>clear=</Begin> + </Tag> + + <Tag _name="Code content type"> + <Begin>codetype=</Begin> + </Tag> + + <Tag _name="Color of selected links"> + <Begin>alink=</Begin> + </Tag> + + <Tag _name="Column span"> + <Begin>colspan=</Begin> + </Tag> + + <Tag _name="Columns"> + <Begin>cols=</Begin> + </Tag> + + <Tag _name="Comment"> + <Begin><!-- </Begin> + <End> --></End> + </Tag> + + <Tag _name="Comment"> + <Begin><comment></Begin> + <End></comment></End> + </Tag> + + <Tag _name="Computer code fragment"> + <Begin><code></Begin> + <End></code></End> + </Tag> + + <Tag _name="Content scheme"> + <Begin>scheme=</Begin> + </Tag> + + <Tag _name="Content type"> + <Begin>type=</Begin> + </Tag> + + <Tag _name="Coordinates"> + <Begin>coords=</Begin> + </Tag> + + <Tag _name="Date and time of change"> + <Begin>datetime=</Begin> + </Tag> + + <Tag _name="Declare flag"> + <Begin>declare</Begin> + </Tag> + + <!-- Translators: DEFER is an optional attribute of the <script> tag. + It indicates that the script is not going to generate any document + content. The browser can continue parsing and drawing the page. --> + <Tag _name="Defer attribute"> + <Begin>defer</Begin> + </Tag> + + <Tag _name="Definition description"> + <Begin><dd></Begin> + <End></dd></End> + </Tag> + + <Tag _name="Definition list"> + <Begin><dl></Begin> + <End></dl></End> + </Tag> + + <Tag _name="Definition term"> + <Begin><dt></Begin> + <End></dt></End> + </Tag> + + <Tag _name="Deleted text"> + <Begin><del></Begin> + <End></del></End> + </Tag> + + <Tag _name="Direction"> + <Begin>direction=</Begin> + </Tag> + + <Tag _name="Directionality"> + <Begin>dir=</Begin> + </Tag> + + <Tag _name="Directory list"> + <Begin><dir></Begin> + <End></dir></End> + </Tag> + + <Tag _name="Disabled"> + <Begin>disabled</Begin> + </Tag> + + <Tag _name="DIV container"> + <Begin><div></Begin> + <End></div></End> + </Tag> + + <Tag _name="DIV Style container"> + <Begin><div style=></Begin> + <End></div></End> + </Tag> + + <Tag _name="Document base"> + <Begin><base></Begin> + </Tag> + + <Tag _name="Document body"> + <Begin><body></Begin> + <End></body></End> + </Tag> + + <Tag _name="Document head"> + <Begin><head></Begin> + <End></head></End> + </Tag> + + <Tag _name="Element ID"> + <Begin>id=</Begin> + </Tag> + + <Tag _name="Document title"> + <Begin><title></Begin> + <End></title></End> + </Tag> + + <Tag _name="Document type"> + <Begin><!DOCTYPE></Begin> + </Tag> + + <Tag _name="HTML version"> + <Begin>version=</Begin> + </Tag> + + <Tag _name="Embedded object"> + <Begin><embed></Begin> + <End></embed></End> + </Tag> + + <Tag _name="Emphasis"> + <Begin><em></Begin> + <End></em></End> + </Tag> + + <Tag _name="Encode type"> + <Begin>enctype=</Begin> + </Tag> + + <Tag _name="Figure"> + <Begin><fig></Begin> + <End></fig></End> + </Tag> + + <Tag _name="Font face"> + <Begin>face=</Begin> + </Tag> + + <Tag _name="For label"> + <Begin>for=</Begin> + </Tag> + + <Tag _name="Forced line break"> + <Begin><br /></Begin> + </Tag> + + <Tag _name="Form action handler"> + <Begin>action=</Begin> + </Tag> + + <Tag _name="Form control group"> + <Begin><fieldset></Begin> + <End></fieldset></End> + </Tag> + + <Tag _name="Form field label text"> + <Begin><label></Begin> + <End></label></End> + </Tag> + + <Tag _name="Form input type"> + <Begin><input type=></Begin> + </Tag> + + <Tag _name="Form input"> + <Begin><input></Begin> + </Tag> + + <Tag _name="Form method"> + <Begin><form method=></Begin> + </Tag> + + <Tag _name="Form method"> + <Begin>method=</Begin> + </Tag> + + <Tag _name="Form"> + <Begin><form></Begin> + <End></form></End> + </Tag> + + <Tag _name="Forward link"> + <Begin>rel=</Begin> + </Tag> + + <Tag _name="Frame render parts"> + <Begin>frame=</Begin> + </Tag> + + <Tag _name="Frame source"> + <Begin><frame src=></Begin> + </Tag> + + <Tag _name="Frame target"> + <Begin>target=</Begin> + </Tag> + + <Tag _name="Frame"> + <Begin><frame></Begin> + </Tag> + + <Tag _name="Frameborder"> + <Begin>frameborder=</Begin> + </Tag> + + <Tag _name="Frameset columns"> + <Begin><frameset cols=></Begin> + <End></frameset></End> + </Tag> + + <Tag _name="Frameset rows"> + <Begin><frameset rows=></Begin> + <End></frameset></End> + </Tag> + + <Tag _name="Frameset"> + <Begin><frameset></Begin> + <End></frameset></End> + </Tag> + + <Tag _name="Framespacing"> + <Begin>framespacing=</Begin> + </Tag> + + <Tag _name="Generic embedded object"> + <Begin><object></Begin> + </Tag> + + <Tag _name="Generic metainformation"> + <Begin><meta></Begin> + </Tag> + + <Tag _name="Generic span"> + <Begin><span></Begin> + <End></span></End> + </Tag> + + <Tag _name="Header cell IDs"> + <Begin>headers=</Begin> + </Tag> + + <Tag _name="Heading 1"> + <Begin><h1></Begin> + <End></h1></End> + </Tag> + + <Tag _name="Heading 2"> + <Begin><h2></Begin> + <End></h2></End> + </Tag> + + <Tag _name="Heading 3"> + <Begin><h3></Begin> + <End></h3></End> + </Tag> + + <Tag _name="Heading 4"> + <Begin><h4></Begin> + <End></h4></End> + </Tag> + + <Tag _name="Heading 5"> + <Begin><h5></Begin> + <End></h5></End> + </Tag> + + <Tag _name="Heading 6"> + <Begin><h6></Begin> + <End></h6></End> + </Tag> + + <Tag _name="Heading"> + <Begin><h></Begin> + <End></h></End> + </Tag> + + <Tag _name="Height"> + <Begin>height=</Begin> + </Tag> + + <Tag _name="Horizontal rule"> + <Begin><hr /></Begin> + </Tag> + + <Tag _name="Horizontal space"> + <Begin>hspace=</Begin> + </Tag> + + <Tag _name="HREF URI"> + <Begin>href=</Begin> + </Tag> + + <Tag _name="HTML root element"> + <Begin><html></Begin> + <End></html></End> + </Tag> + + <Tag _name="HTTP header name"> + <Begin>http-equiv=</Begin> + </Tag> + + <Tag _name="I18N BiDi override"> + <Begin><BDO></Begin> + <End></BDO></End> + </Tag> + + <Tag _name="Image map area"> + <Begin><area></Begin> + </Tag> + + <Tag _name="Image map name"> + <Begin><map name=></Begin> + <End></map></End> + </Tag> + + <Tag _name="Image map"> + <Begin><map></Begin> + <End></map></End> + </Tag> + + <Tag _name="Image source"> + <Begin><img src=></Begin> + </Tag> + + <Tag _name="Image"> + <Begin><img></Begin> + </Tag> + + <Tag _name="Inline frame"> + <Begin><iframe></Begin> + <End></iframe></End> + </Tag> + + <Tag _name="Inline layer"> + <Begin><ilayer></Begin> + <End></ilayer></End> + </Tag> + + <Tag _name="Inserted text"> + <Begin><ins></Begin> + <End></ins></End> + </Tag> + + <Tag _name="Instance definition"> + <Begin><dfn></Begin> + <End></dfn></End> + </Tag> + + <Tag _name="Italic text"> + <Begin><i></Begin> + <End></i></End> + </Tag> + + <Tag _name="Java applet"> + <Begin><applet></Begin> + <End></applet></End> + </Tag> + + <Tag _name="Label"> + <Begin>label=</Begin> + </Tag> + + <Tag _name="Language code"> + <Begin>hreflang=</Begin> + </Tag> + + <Tag _name="Language code"> + <Begin>lang=</Begin> + </Tag> + + <Tag _name="Large text style"> + <Begin><big></Begin> + <End></big></End> + </Tag> + + <Tag _name="Layer"> + <Begin><layer></Begin> + </Tag> + + <Tag _name="Link color"> + <Begin>link=</Begin> + </Tag> + + <Tag _name="List item"> + <Begin><li></Begin> + <End></li></End> + </Tag> + + <Tag _name="List of MIME types for file upload"> + <Begin>accept=</Begin> + </Tag> + + <Tag _name="List of supported character sets"> + <Begin>accept-charset=</Begin> + </Tag> + + <Tag _name="Listing"> + <Begin><listing></Begin> + <End></listing></End> + </Tag> + + <Tag _name="Local change to font"> + <Begin><font></Begin> + <End></font></End> + </Tag> + + <Tag _name="Long description link"> + <Begin>longdesc=</Begin> + </Tag> + + <Tag _name="Long quotation"> + <Begin><blockquote></Begin> + <End></blockquote></End> + </Tag> + + <Tag _name="Mail link"> + <Begin>mailto=</Begin> + </Tag> + + <Tag _name="Margin pixel height"> + <Begin>marginheight=</Begin> + </Tag> + + <Tag _name="Margin pixel width"> + <Begin>marginwidth=</Begin> + </Tag> + + <Tag _name="Marquee"> + <Begin><marquee></Begin> + <End></marquee></End> + </Tag> + + <Tag _name="Maximum length of text field"> + <Begin>maxlength=</Begin> + </Tag> + + <Tag _name="Output media"> + <Begin>media=</Begin> + </Tag> + + <Tag _name="Media-independent link"> + <Begin><link rel="></Begin> + </Tag> + + <Tag _name="Menu list"> + <Begin><menu></Begin> + <End></menu></End> + </Tag> + + <Tag _name="Multicolumn"> + <Begin><multicol></Begin> + <End></multicol></End> + </Tag> + + <Tag _name="Multi-line text field"> + <Begin><textarea></Begin> + <End></textarea></End> + </Tag> + + <Tag _name="Multiple"> + <Begin>multiple</Begin> + </Tag> + + <Tag _name="Name"> + <Begin>name=</Begin> + </Tag> + + <Tag _name="Named property value"> + <Begin><param></Begin> + </Tag> + + <Tag _name="Next ID"> + <Begin><nextid></Begin> + </Tag> + + <Tag _name="No embedded objects"> + <Begin><noembed></Begin> + </Tag> + + <Tag _name="No frames"> + <Begin><noframes></Begin> + <End></noframes></End> + </Tag> + + <Tag _name="No layers"> + <Begin><nolayer></Begin> + <End></nolayer></End> + </Tag> + + <Tag _name="No line break"> + <Begin><nobr></Begin> + <End></nobr></End> + </Tag> + + <Tag _name="No resize"> + <Begin>noresize</Begin> + </Tag> + + <Tag _name="No script"> + <Begin><noscript></Begin> + <End></noscript></End> + </Tag> + + <Tag _name="No shade"> + <Begin>noshade</Begin> + </Tag> + + <Tag _name="No URI"> + <Begin>nohref</Begin> + </Tag> + + <Tag _name="No word wrap"> + <Begin>nowrap</Begin> + </Tag> + + <Tag _name="Note"> + <Begin><note></Begin> + <End></note></End> + </Tag> + + <Tag _name="Object applet file"> + <Begin>object=</Begin> + </Tag> + + <Tag _name="Object data reference"> + <Begin>data=</Begin> + </Tag> + + <Tag _name="Offset for alignment character"> + <Begin>charoff=</Begin> + </Tag> + + <Tag _name="OnBlur event"> + <Begin>onblur=</Begin> + </Tag> + + <Tag _name="OnChange event"> + <Begin>onchange=</Begin> + </Tag> + + <Tag _name="OnClick event"> + <Begin>onclick=</Begin> + </Tag> + + <Tag _name="OnDblClick event"> + <Begin>ondbclick=</Begin> + </Tag> + + <Tag _name="OnFocus event"> + <Begin>onfocus=</Begin> + </Tag> + + <Tag _name="OnKeyDown event"> + <Begin>onkeydown=</Begin> + </Tag> + + <Tag _name="OnKeyPress event"> + <Begin>onkeypress=</Begin> + </Tag> + + <Tag _name="OnKeyUp event"> + <Begin>onkeyup=</Begin> + </Tag> + + <Tag _name="OnLoad event"> + <Begin>onload=</Begin> + </Tag> + + <Tag _name="OnMouseDown event"> + <Begin>onmousedown=</Begin> + </Tag> + + <Tag _name="OnMouseMove event"> + <Begin>onmousemove=</Begin> + </Tag> + + <Tag _name="OnMouseOut event"> + <Begin>onmouseout=</Begin> + </Tag> + + <Tag _name="OnMouseOver event"> + <Begin>onmouseover=</Begin> + </Tag> + + <Tag _name="OnMouseUp event"> + <Begin>onmouseup=</Begin> + </Tag> + + <Tag _name="OnReset event"> + <Begin>onreset=</Begin> + </Tag> + + <Tag _name="OnSelect event"> + <Begin>onselect=</Begin> + </Tag> + + <Tag _name="OnSubmit event"> + <Begin>onsubmit=</Begin> + </Tag> + + <Tag _name="OnUnload event"> + <Begin>onunload=</Begin> + </Tag> + + <Tag _name="Option group"> + <Begin><optgroup></Begin> + <End></optgroup></End> + </Tag> + + <Tag _name="Option selector"> + <Begin><select></Begin> + <End></select></End> + </Tag> + + <Tag _name="Ordered list"> + <Begin><ol></Begin> + <End></ol></End> + </Tag> + + <Tag _name="Paragraph class"> + <Begin><p class=></Begin> + <End></p></End> + </Tag> + + <Tag _name="Paragraph style"> + <Begin><p style=></Begin> + <End></p></End> + </Tag> + + <Tag _name="Paragraph"> + <Begin><p></Begin> + <End></p></End> + </Tag> + + <Tag _name="Preformatted listing"> + <Begin><xmp></Begin> + <End></xmp></End> + </Tag> + + <Tag _name="Preformatted text"> + <Begin><pre></Begin> + <End></pre></End> + </Tag> + + <Tag _name="Profile metainfo dictionary"> + <Begin>profile=</Begin> + </Tag> + + <Tag _name="Prompt message"> + <Begin>prompt=</Begin> + </Tag> + + <Tag _name="Push button"> + <Begin><button></Begin> + <End></button></End> + </Tag> + + <Tag _name="Quote"> + <Begin><quote></Begin> + </Tag> + + <Tag _name="Range"> + <Begin><range></Begin> + </Tag> + + <Tag _name="ReadOnly text and password"> + <Begin>readonly</Begin> + </Tag> + + <Tag _name="Reduced spacing"> + <Begin>compact</Begin> + </Tag> + + <Tag _name="Reverse link"> + <Begin>rev=</Begin> + </Tag> + + <Tag _name="Root"> + <Begin><root></Begin> + </Tag> + + <Tag _name="Rows"> + <Begin>rows=</Begin> + </Tag> + + <Tag _name="Rulings between rows and columns"> + <Begin>rules=</Begin> + </Tag> + + <Tag _name="Sample program output, scripts"> + <Begin><samp></Begin> + <End></samp></End> + </Tag> + + <Tag _name="Scope covered by header cells"> + <Begin>scope=</Begin> + </Tag> + + <Tag _name="Script language name"> + <Begin>language=</Begin> + </Tag> + + <Tag _name="Script statements"> + <Begin><script></Begin> + <End></script></End> + </Tag> + + <Tag _name="Scrollbar"> + <Begin>scrolling=</Begin> + </Tag> + + <Tag _name="Selectable option"> + <Begin><option></Begin> + </Tag> + + <Tag _name="Selected"> + <Begin>selected</Begin> + </Tag> + + <Tag _name="Server-side image map"> + <Begin>ismap</Begin> + </Tag> + + <Tag _name="Shape"> + <Begin>shape=</Begin> + </Tag> + + <Tag _name="Short inline quotation"> + <Begin><q></Begin> + <End></q></End> + </Tag> + + <Tag _name="Single line prompt"> + <Begin><isindex></Begin> + </Tag> + + <Tag _name="Size"> + <Begin>size=</Begin> + </Tag> + + <Tag _name="Small text style"> + <Begin><small></Begin> + <End></small></End> + </Tag> + + <Tag _name="Soft line break"> + <Begin><wbr></Begin> + </Tag> + + <Tag _name="Sound"> + <Begin><sound></Begin> + </Tag> + + <Tag _name="Source"> + <Begin>src=</Begin> + </Tag> + + <Tag _name="Space-separated archive list"> + <Begin>archive=</Begin> + </Tag> + + <Tag _name="Spacer"> + <Begin><spacer></Begin> + </Tag> + + <Tag _name="Spacing between cells"> + <Begin>cellspacing=</Begin> + </Tag> + + <Tag _name="Spacing within cells"> + <Begin>cellpadding=</Begin> + </Tag> + + <Tag _name="Span"> + <Begin>span=</Begin> + </Tag> + + <Tag _name="Square root"> + <Begin><sqrt></Begin> + </Tag> + + <Tag _name="Standby load message"> + <Begin>standby=</Begin> + </Tag> + + <Tag _name="Starting sequence number"> + <Begin>start</Begin> + </Tag> + + <Tag _name="Strike-through text style"> + <Begin><s></Begin> + <End></s></End> + </Tag> + + <Tag _name="Strike-through text"> + <Begin><strike></Begin> + <End></strike></End> + </Tag> + + <Tag _name="Strong emphasis"> + <Begin><strong></Begin> + <End></strong></End> + </Tag> + + <Tag _name="Style info"> + <Begin><style></Begin> + <End></style></End> + </Tag> + + <Tag _name="Style info"> + <Begin>style=</Begin> + </Tag> + + <Tag _name="Subscript"> + <Begin><sub></Begin> + <End></sub></End> + </Tag> + + <Tag _name="Superscript"> + <Begin><sup></Begin> + <End></sup></End> + </Tag> + + <Tag _name="Tab order position"> + <Begin>tabindex=</Begin> + </Tag> + + <Tag _name="Table body"> + <Begin><tbody></Begin> + <End></tbody></End> + </Tag> + + <Tag _name="Table caption"> + <Begin><caption></Begin> + <End></caption></End> + </Tag> + + <Tag _name="Table column group properties"> + <Begin><colgroup></Begin> + <End></colgroup></End> + </Tag> + + <Tag _name="Table column properties"> + <Begin><col></Begin> + <End></col></End> + </Tag> + + <Tag _name="Table data cell"> + <Begin><td></Begin> + <End></td></End> + </Tag> + + <Tag _name="Table footer"> + <Begin><tfoot></Begin> + <End></tfoot></End> + </Tag> + + <Tag _name="Table header cell"> + <Begin><th></Begin> + <End></th></End> + </Tag> + + <Tag _name="Table header"> + <Begin><thead></Begin> + <End></thead></End> + </Tag> + + <Tag _name="Table row"> + <Begin><tr></Begin> + <End></tr></End> + </Tag> + + <Tag _name="Table summary"> + <Begin>summary=</Begin> + </Tag> + + <Tag _name="Table"> + <Begin><table></Begin> + <End></table></End> + </Tag> + + <Tag _name="Target - Blank"> + <Begin><a target="_blank"></Begin> + <End></a></End> + </Tag> + + <Tag _name="Target - Parent"> + <Begin><a target="_parent"></Begin> + <End></a></End> + </Tag> + + <Tag _name="Target - Self"> + <Begin><a target="_self"></Begin> + <End></a></End> + </Tag> + + <Tag _name="Target - Top"> + <Begin><a target="_top"></Begin> + <End></a></End> + </Tag> + + <Tag _name="Teletype or monospace text style"> + <Begin><tt></Begin> + <End></tt></End> + </Tag> + + <Tag _name="Text color"> + <Begin>color=</Begin> + </Tag> + + <Tag _name="Text color"> + <Begin>text=</Begin> + </Tag> + + <Tag _name="Text entered by user"> + <Begin><kbd></Begin> + <End></kbd></End> + </Tag> + + <Tag _name="Text"> + <Begin><text></Begin> + </Tag> + + <Tag _name="Title"> + <Begin>title=</Begin> + </Tag> + + <Tag _name="Top margin in pixels"> + <Begin>topmargin</Begin> + </Tag> + + <Tag _name="Underlined text style"> + <Begin><u></Begin> + <End></u></End> + </Tag> + + <Tag _name="Unordered list"> + <Begin><ul></Begin> + <End></ul></End> + </Tag> + + <Tag _name="URL"> + <Begin>url=</Begin> + </Tag> + + <Tag _name="Use image map"> + <Begin>usemap=</Begin> + </Tag> + + <Tag _name="Value interpretation"> + <Begin>valuetype=</Begin> + </Tag> + + <Tag _name="Value"> + <Begin>value=</Begin> + </Tag> + + <Tag _name="Variable or program argument"> + <Begin><var></Begin> + <End></var></End> + </Tag> + + <Tag _name="Vertical cell alignment"> + <Begin>valign=</Begin> + </Tag> + + <Tag _name="Vertical space"> + <Begin>vspace=</Begin> + </Tag> + + <Tag _name="Visited link color"> + <Begin>vlink=</Begin> + </Tag> + + <Tag _name="Width"> + <Begin>width=</Begin> + </Tag> + +</TagGroup> + +<TagGroup _name="HTML - Special Characters" sort="false"> + + <Tag _name="Non-breaking space"> + <Begin>&nbsp;</Begin> + </Tag> + + <Tag name="Soft hyphen"> + <Begin>&shy;</Begin> + </Tag> + + <Tag name="""> + <Begin>&quot;</Begin> + </Tag> + + <Tag name="&"> + <Begin>&amp;</Begin> + </Tag> + + <Tag name="¡"> + <Begin>&iexcl;</Begin> + </Tag> + + <Tag name="¦"> + <Begin>&brvbar;</Begin> + </Tag> + + <Tag name="¨"> + <Begin>&uml;</Begin> + </Tag> + + <Tag name="¯"> + <Begin>&macr;</Begin> + </Tag> + + <Tag name="´"> + <Begin>&acute;</Begin> + </Tag> + + <Tag name="¸"> + <Begin>&cedil;</Begin> + </Tag> + + <Tag name="<"> + <Begin>&lt;</Begin> + </Tag> + + <Tag name=">"> + <Begin>&gt;</Begin> + </Tag> + + <Tag name="±"> + <Begin>&plusmn;</Begin> + </Tag> + + <Tag name="«"> + <Begin>&laquo;</Begin> + </Tag> + + <Tag name="»"> + <Begin>&raquo;</Begin> + </Tag> + + <Tag name="×"> + <Begin>&times;</Begin> + </Tag> + + <Tag name="÷"> + <Begin>&divide;</Begin> + </Tag> + + <Tag name="¢"> + <Begin>&cent;</Begin> + </Tag> + + <Tag name="£"> + <Begin>&pound;</Begin> + </Tag> + + <Tag name="€"> + <Begin>&euro;</Begin> + </Tag> + + <Tag name="¤"> + <Begin>&curren;</Begin> + </Tag> + + <Tag name="¥"> + <Begin>&yen;</Begin> + </Tag> + + <Tag name="§"> + <Begin>&sect;</Begin> + </Tag> + + <Tag name="©"> + <Begin>&copy;</Begin> + </Tag> + + <Tag name="¬"> + <Begin>&not;</Begin> + </Tag> + + <Tag name="®"> + <Begin>&reg;</Begin> + </Tag> + + <Tag name="™"> + <Begin>&trade;</Begin> + </Tag> + + <Tag name="°"> + <Begin>&deg;</Begin> + </Tag> + + <Tag name="µ"> + <Begin>&micro;</Begin> + </Tag> + + <Tag name="¶"> + <Begin>&para;</Begin> + </Tag> + + <Tag name="·"> + <Begin>&middot;</Begin> + </Tag> + + <Tag name="¼"> + <Begin>&frac14;</Begin> + </Tag> + + <Tag name="½"> + <Begin>&frac12;</Begin> + </Tag> + + <Tag name="¾"> + <Begin>&frac34;</Begin> + </Tag> + + <Tag name="¹"> + <Begin>&sup1;</Begin> + </Tag> + + <Tag name="²"> + <Begin>&sup2;</Begin> + </Tag> + + <Tag name="³"> + <Begin>&sup3;</Begin> + </Tag> + + <Tag name="á"> + <Begin>&aacute;</Begin> + </Tag> + + <Tag name="Á"> + <Begin>&Aacute;</Begin> + </Tag> + + <Tag name="â"> + <Begin>&acirc;</Begin> + </Tag> + + <Tag name="Â"> + <Begin>&Acirc;</Begin> + </Tag> + + <Tag name="à"> + <Begin>&agrave;</Begin> + </Tag> + + <Tag name="À"> + <Begin>&Agrave;</Begin> + </Tag> + + <Tag name="å"> + <Begin>&aring;</Begin> + </Tag> + + <Tag name="Å"> + <Begin>&Aring;</Begin> + </Tag> + + <Tag name="ã"> + <Begin>&atilde;</Begin> + </Tag> + + <Tag name="Ã"> + <Begin>&Atilde;</Begin> + </Tag> + + <Tag name="ä"> + <Begin>&auml;</Begin> + </Tag> + + <Tag name="Ä"> + <Begin>&Auml;</Begin> + </Tag> + + <Tag name="ª"> + <Begin>&ordf;</Begin> + </Tag> + + <Tag name="æ"> + <Begin>&aelig;</Begin> + </Tag> + + <Tag name="Æ"> + <Begin>&AElig;</Begin> + </Tag> + + <Tag name="ç"> + <Begin>&ccedil;</Begin> + </Tag> + + <Tag name="Ç"> + <Begin>&Ccedil;</Begin> + </Tag> + + <Tag name="Ð"> + <Begin>&ETH;</Begin> + </Tag> + + <Tag name="ð"> + <Begin>&eth;</Begin> + </Tag> + + <Tag name="é"> + <Begin>&eacute;</Begin> + </Tag> + + <Tag name="É"> + <Begin>&Eacute;</Begin> + </Tag> + + <Tag name="ê"> + <Begin>&ecirc;</Begin> + </Tag> + + <Tag name="Ê"> + <Begin>&Ecirc;</Begin> + </Tag> + + <Tag name="è"> + <Begin>&egrave;</Begin> + </Tag> + + <Tag name="È"> + <Begin>&Egrave;</Begin> + </Tag> + + <Tag name="ë"> + <Begin>&euml;</Begin> + </Tag> + + <Tag name="Ë"> + <Begin>&Euml;</Begin> + </Tag> + + <Tag name="í"> + <Begin>&iacute;</Begin> + </Tag> + + <Tag name="Í"> + <Begin>&Iacute;</Begin> + </Tag> + + <Tag name="î"> + <Begin>&icirc;</Begin> + </Tag> + + <Tag name="Î"> + <Begin>&Icirc;</Begin> + </Tag> + + <Tag name="ì"> + <Begin>&igrave;</Begin> + </Tag> + + <Tag name="Ì"> + <Begin>&Igrave;</Begin> + </Tag> + + <Tag name="ï"> + <Begin>&iuml;</Begin> + </Tag> + + <Tag name="Ï"> + <Begin>&Iuml;</Begin> + </Tag> + + <Tag name="ñ"> + <Begin>&ntilde;</Begin> + </Tag> + + <Tag name="Ñ"> + <Begin>&Ntilde;</Begin> + </Tag> + + <Tag name="ó"> + <Begin>&oacute;</Begin> + </Tag> + + <Tag name="Ó"> + <Begin>&Oacute;</Begin> + </Tag> + + <Tag name="ô"> + <Begin>&ocirc;</Begin> + </Tag> + + <Tag name="Ô"> + <Begin>&Ocirc;</Begin> + </Tag> + + <Tag name="ò"> + <Begin>&ograve;</Begin> + </Tag> + + <Tag name="Ò"> + <Begin>&Ograve;</Begin> + </Tag> + + <Tag name="º"> + <Begin>&ordm;</Begin> + </Tag> + + <Tag name="ø"> + <Begin>&oslash;</Begin> + </Tag> + + <Tag name="Ø"> + <Begin>&Oslash;</Begin> + </Tag> + + <Tag name="õ"> + <Begin>&otilde;</Begin> + </Tag> + + <Tag name="Õ"> + <Begin>&Otilde;</Begin> + </Tag> + + <Tag name="ö"> + <Begin>&ouml;</Begin> + </Tag> + + <Tag name="Ö"> + <Begin>&Ouml;</Begin> + </Tag> + + <Tag name="ß"> + <Begin>&szlig;</Begin> + </Tag> + + <Tag name="þ"> + <Begin>&thorn;</Begin> + </Tag> + + <Tag name="Þ"> + <Begin>&THORN;</Begin> + </Tag> + + <Tag name="ú"> + <Begin>&uacute;</Begin> + </Tag> + + <Tag name="Ú"> + <Begin>&Uacute;</Begin> + </Tag> + + <Tag name="û"> + <Begin>&ucirc;</Begin> + </Tag> + + <Tag name="Û"> + <Begin>&Ucirc;</Begin> + </Tag> + + <Tag name="ù"> + <Begin>&ugrave;</Begin> + </Tag> + + <Tag name="Ù"> + <Begin>&Ugrave;</Begin> + </Tag> + + <Tag name="ü"> + <Begin>&uuml;</Begin> + </Tag> + + <Tag name="Ü"> + <Begin>&Uuml;</Begin> + </Tag> + + <Tag name="ý"> + <Begin>&yacute;</Begin> + </Tag> + + <Tag name="Ý"> + <Begin>&Yacute;</Begin> + </Tag> + + <Tag name="ÿ"> + <Begin>&yuml;</Begin> + </Tag> + +</TagGroup> +</TagList> diff --git a/plugins/taglist/Latex.tags.xml.in b/plugins/taglist/Latex.tags.xml.in new file mode 100755 index 00000000..5ac71c0d --- /dev/null +++ b/plugins/taglist/Latex.tags.xml.in @@ -0,0 +1,344 @@ +<?xml version="1.0" encoding="UTF-8"?> +<TagList xmlns="http://gedit.sourceforge.net/some-location"> +<TagGroup _name="Latex - Tags" sort="true"> + <Tag _name="Bibliography (cite)"> + <Begin>\cite{ </Begin> + <End> } </End> + </Tag> + + <Tag _name="Bibliography (item)"> + <Begin>\bibitem{ </Begin> + <End> }{} </End> + </Tag> + + <Tag _name="Bibliography (shortcite)"> + <Begin>\shortcite{ </Begin> + <End> }</End> + </Tag> + + <Tag _name="Bibliography (thebibliography)"> + <Begin>\begin{thebibliography}{99} </Begin> + <End> \end{thebibliography}</End> + </Tag> + + <Tag _name="Brackets ()"> + <Begin>\left( </Begin> + <End> \right) </End> + </Tag> + + <Tag _name="Brackets []"> + <Begin>\left[ </Begin> + <End> \right] </End> + </Tag> + + <Tag _name="Brackets {}"> + <Begin>\left\{ </Begin> + <End> \right\} </End> + </Tag> + + <Tag _name="Brackets <>"> + <Begin>\left\langle </Begin> + <End> \right\rangle </End> + </Tag> + + <Tag _name="File input"> + <Begin>\input{ </Begin> + <End> } </End> + </Tag> + + <Tag _name="Function cosine"> + <Begin>\cos{ </Begin> + <End> } </End> + </Tag> + + <Tag _name="Function e^"> + <Begin>e^{ </Begin> + <End> } </End> + </Tag> + + <Tag _name="Function exp"> + <Begin>\exp{ </Begin> + <End> } </End> + </Tag> + + <Tag _name="Function log"> + <Begin>\log{ </Begin> + <End> } </End> + </Tag> + + <Tag _name="Function log10"> + <Begin>\log_{10}{ </Begin> + <End> } </End> + </Tag> + + <Tag _name="Function sine"> + <Begin>\sin{ </Begin> + <End> } </End> + </Tag> + + <Tag _name="Greek alpha"> + <Begin>\alpha </Begin> + </Tag> + + <Tag _name="Greek beta"> + <Begin>\beta </Begin> + </Tag> + + <Tag _name="Greek epsilon"> + <Begin>\varepsilon </Begin> + </Tag> + + <Tag _name="Greek gamma"> + <Begin>\gamma </Begin> + </Tag> + + <Tag _name="Greek lambda"> + <Begin>\lambda </Begin> + </Tag> + + <Tag _name="Greek rho"> + <Begin>\rho </Begin> + </Tag> + + <Tag _name="Greek tau"> + <Begin>\tau </Begin> + </Tag> + + <Tag _name="Header 0 (chapter)"> + <Begin>\chapter{ </Begin> + <End> } </End> + </Tag> + + <Tag _name="Header 0 (chapter*)"> + <Begin>\chapter*{ </Begin> + <End> } </End> + </Tag> + + <Tag _name="Header 1 (section)"> + <Begin>\section{ </Begin> + <End> } </End> + </Tag> + + <Tag _name="Header 1 (section*)"> + <Begin>\section*{ </Begin> + <End> } </End> + </Tag> + + <Tag _name="Header 2 (subsection)"> + <Begin>\subsection{ </Begin> + <End> } </End> + </Tag> + + <Tag _name="Header 2 (subsection*)"> + <Begin>\subsection*{ </Begin> + <End> } </End> + </Tag> + + <Tag _name="Header 3 (subsubsection)"> + <Begin>\subsubsection{ </Begin> + <End> } </End> + </Tag> + + <Tag _name="Header 3 (subsubsection*)"> + <Begin>\subsubsection*{ </Begin> + <End> } </End> + </Tag> + + <Tag _name="Header 4 (paragraph)"> + <Begin>\paragraph{ </Begin> + <End> } </End> + </Tag> + + <Tag _name="Header appendix"> + <Begin>\appendix </Begin> + </Tag> + + <Tag _name="List description"> + <Begin>\begin{description} </Begin> + <End> \end{description} </End> + </Tag> + + <Tag _name="List enumerate"> + <Begin>\begin{enumerate} </Begin> + <End> \end{enumerate} </End> + </Tag> + + <Tag _name="List itemize"> + <Begin>\begin{itemize} </Begin> + <End> \end{itemize} </End> + </Tag> + + <Tag _name="Item with label"> + <Begin>\item[ </Begin> + <End> ]</End> + </Tag> + + <Tag _name="Item"> + <Begin>\item </Begin> + </Tag> + + <Tag _name="Maths (display)"> + <Begin> $$ </Begin> + <End> $$ </End> + </Tag> + + <Tag _name="Maths (inline)"> + <Begin>$ </Begin> + <End> $ </End> + </Tag> + + <Tag _name="Operator fraction"> + <Begin>\frac{ </Begin> + <End> }{} </End> + </Tag> + + <Tag _name="Operator integral (display)"> + <Begin>\int\limits_{ </Begin> + <End> }^{} </End> + </Tag> + + <Tag _name="Operator integral (inline)"> + <Begin>\int_{ </Begin> + <End> }^{} </End> + </Tag> + + <Tag _name="Operator sum (display)"> + <Begin>\sum\limits_{ </Begin> + <End> }^{} </End> + </Tag> + + <Tag _name="Operator sum (inline)"> + <Begin>\sum_{ </Begin> + <End> }^{} </End> + </Tag> + + <Tag _name="Reference label"> + <Begin>\label{ </Begin> + <End> } </End> + </Tag> + + <Tag _name="Reference ref"> + <Begin>{\protect\ref{ </Begin> + <End> }} </End> + </Tag> + + <Tag _name="Symbol <<"> + <Begin>\ll </Begin> + </Tag> + + <Tag _name="Symbol <="> + <Begin>\le </Begin> + </Tag> + + <Tag _name="Symbol >="> + <Begin>\ge </Begin> + </Tag> + + <Tag _name="Symbol >>"> + <Begin>\gg </Begin> + </Tag> + + <Tag _name="Symbol and"> + <Begin>\mathrm{and} </Begin> + </Tag> + + <Tag _name="Symbol const"> + <Begin>\mathrm{const} </Begin> + </Tag> + + <Tag _name="Symbol d2-by-dt2-partial"> + <Begin>\frac{\partial{ </Begin> + <End> }^2}{\partial t^2} </End> + </Tag> + + <Tag _name="Symbol dagger"> + <Begin>\dagger </Begin> + </Tag> + + <Tag _name="Symbol d-by-dt"> + <Begin>\frac{{\mathrm{d}} </Begin> + <End> }{{\mathrm{d}}t} </End> + </Tag> + + <Tag _name="Symbol d-by-dt-partial"> + <Begin>\frac{\partial </Begin> + <End> }{\partial t} </End> + </Tag> + + <Tag _name="Symbol equiv"> + <Begin>\equiv </Begin> + </Tag> + + <Tag _name="Symbol en-dash --"> + <Begin>-- </Begin> + </Tag> + + <Tag _name="Symbol em-dash ---"> + <Begin>--- </Begin> + </Tag> + + <Tag _name="Symbol infinity"> + <Begin>\infty </Begin> + </Tag> + + <Tag _name="Symbol mathspace ,"> + <Begin>\quad\mathrm{,} </Begin> + </Tag> + + <Tag _name="Symbol mathspace ."> + <Begin>\quad\mathrm{.} </Begin> + </Tag> + + <Tag _name="Symbol mathspace _"> + <Begin>\quad </Begin> + </Tag> + + <Tag _name="Symbol mathspace __"> + <Begin>\qquad </Begin> + </Tag> + + <Tag _name="Symbol simeq"> + <Begin>\simeq </Begin> + </Tag> + + <Tag _name="Symbol star"> + <Begin>\star </Begin> + </Tag> + + <Tag _name="Typeface bold"> + <Begin>\textbf{ </Begin> + <End> } </End> + </Tag> + + <Tag _name="Typeface type"> + <Begin>\texttt{ </Begin> + <End> } </End> + </Tag> + + <Tag _name="Typeface italic"> + <Begin>\textit{ </Begin> + <End> } </End> + </Tag> + + <Tag _name="Typeface slanted"> + <Begin>\textsl{ </Begin> + <End> } </End> + </Tag> + + <Tag _name="Emphasis"> + <Begin>\emph{ </Begin> + <End> } </End> + </Tag> + + <Tag _name="Unbreakable text"> + <Begin>\mbox{ </Begin> + <End> } </End> + </Tag> + + <Tag _name="Footnote"> + <Begin>\footnote{ </Begin> + <End> } </End> + </Tag> + +</TagGroup> +</TagList> diff --git a/plugins/taglist/Makefile.am b/plugins/taglist/Makefile.am new file mode 100755 index 00000000..b04f4584 --- /dev/null +++ b/plugins/taglist/Makefile.am @@ -0,0 +1,60 @@ +# Tag list plugin +plugindir = $(GEDIT_PLUGINS_LIBS_DIR) + +taglistdir = $(GEDIT_PLUGINS_DATA_DIR)/taglist + +taglist_in_files = \ + HTML.tags.xml.in \ + Latex.tags.xml.in \ + XSLT.tags.xml.in \ + XUL.tags.xml.in + +taglist_DATA = $(taglist_in_files:.tags.xml.in=.tags.gz) + +INCLUDES = \ + -I$(top_srcdir) \ + $(GEDIT_CFLAGS) \ + $(WARN_CFLAGS) \ + $(DISABLE_DEPRECATED_CFLAGS) + +plugin_LTLIBRARIES = libtaglist.la + +libtaglist_la_SOURCES = \ + gedit-taglist-plugin-parser.c \ + gedit-taglist-plugin-parser.h \ + gedit-taglist-plugin-panel.c \ + gedit-taglist-plugin-panel.h \ + gedit-taglist-plugin.c \ + gedit-taglist-plugin.h + +libtaglist_la_LDFLAGS = $(PLUGIN_LIBTOOL_FLAGS) +libtaglist_la_LIBADD = $(GEDIT_LIBS) + +plugin_in_files = taglist.gedit-plugin.desktop.in + +%.gedit-plugin: %.gedit-plugin.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*po) + $(INTLTOOL_MERGE) $(top_srcdir)/po $< $@ -d -u -c $(top_builddir)/po/.intltool-merge-cache + +GZIP_ENV = -9 + +%.tags.gz: %.tags.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) + LC_ALL=C $(INTLTOOL_MERGE) $(top_srcdir)/po $< $(@:.gz=) -x -u -c $(top_builddir)/po/.intltool-merge-cache + GZIP=$(GZIP_ENV) gzip -f $(@:.gz=) + +plugin_DATA = $(plugin_in_files:.gedit-plugin.desktop.in=.gedit-plugin) + +EXTRA_DIST = \ + $(taglist_in_files) $(taglist_DATA) \ + $(plugin_in_files) $(plugin_DATA) + +CLEANFILES = \ + $(taglist_DATA) \ + $(plugin_DATA) +DISTCLEANFILES = \ + $(taglist_DATA) \ + $(plugin_DATA) + + + + +-include $(top_srcdir)/git.mk diff --git a/plugins/taglist/XSLT.tags.xml.in b/plugins/taglist/XSLT.tags.xml.in new file mode 100755 index 00000000..f9591a25 --- /dev/null +++ b/plugins/taglist/XSLT.tags.xml.in @@ -0,0 +1,337 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + XSLT Tags for gedit + Jens Askengren <[email protected]> +--> +<TagList xmlns="http://gedit.sourceforge.net/some-location"> +<TagGroup _name="XSLT - Elements" sort="true"> + <Tag name="apply-imports"> + <Begin><xsl:apply-imports></Begin> + <End></xsl:apply-imports></End> + </Tag> + <Tag name="apply-templates"> + <Begin><xsl:apply-templates select="</Begin> + <End>"/></End> + </Tag> + <Tag name="attribute"> + <Begin><xsl:attribute name="</Begin> + <End>"></xsl:attribute></End> + </Tag> + <Tag name="attribute-set"> + <Begin><xsl:attribute-set name="</Begin> + <End>"></xsl:attribute-set></End> + </Tag> + <Tag name="call-template"> + <Begin><xsl:call-template name="</Begin> + <End>"/></End> + </Tag> + <Tag name="choose"> + <Begin><xsl:choose> </Begin> + <End> </xsl:choose></End> + </Tag> + <Tag name="comment"> + <Begin><xsl:comment></Begin> + <End></xsl:comment></End> + </Tag> + <Tag name="copy"> + <Begin><xsl:copy/></Begin> + </Tag> + <Tag name="copy-of"> + <Begin><xsl:copy-of select="</Begin> + <End>"/></End> + </Tag> + <Tag name="decimal-format"> + <Begin><xsl:decimal-format/></Begin> + </Tag> + <Tag name="element"> + <Begin><xsl:element name="</Begin> + <End>"></xsl:element></End> + </Tag> + <Tag name="fallback"> + <Begin><xsl:fallback></Begin> + <End></xsl:fallback></End> + </Tag> + <Tag name="for-each"> + <Begin><xsl:for-each select="</Begin> + <End>"> </xsl:for-each></End> + </Tag> + <Tag name="if"> + <Begin><xsl:if test="</Begin> + <End>"> </xsl:if></End> + </Tag> + <Tag name="import"> + <Begin><xsl:import href="</Begin> + <End>"/></End> + </Tag> + <Tag name="include"> + <Begin><xsl:include href="</Begin> + <End>"/></End> + </Tag> + <Tag name="key"> + <Begin><xsl:key name="</Begin> + <End>" match="" use=""/></End> + </Tag> + <Tag name="message"> + <Begin><xsl:message></Begin> + <End></xsl:message></End> + </Tag> + <Tag name="namespace-alias"> + <Begin><xsl:namespace-alias stylesheet-prefix="</Begin> + <End>" result-prefix=""/></End> + </Tag> + <Tag name="number"> + <Begin><xsl:number/></Begin> + </Tag> + <Tag name="otherwise"> + <Begin><xsl:otherwise></Begin> + <End></xsl:otherwise></End> + </Tag> + <Tag name="output"> + <Begin><xsl:output encoding="utf-8" method="</Begin> + <End>"/></End> + </Tag> + <Tag name="param"> + <Begin><xsl:param name="</Begin> + <End>"></xsl:param></End> + </Tag> + <Tag name="preserve-space"> + <Begin><xsl:preserve-space elements="</Begin> + <End>"></xsl:preserve-space></End> + </Tag> + <Tag name="processing-instruction"> + <Begin><xsl:processing-instruction name="</Begin> + <End>"></xsl:processing-instruction></End> + </Tag> + <Tag name="sort"> + <Begin><xsl:sort/></Begin> + </Tag> + <Tag name="strip-space"> + <Begin><xsl:strip-space elements="</Begin> + <End>"></xsl:strip-space></End> + </Tag> + <Tag name="stylesheet"> + <Begin><xsl:stylesheet version="</Begin> + <End>"/> </xsl:stylesheet></End> + </Tag> + <Tag name="template"> + <Begin><xsl:template match="</Begin> + <End>"> </xsl:template></End> + </Tag> + <Tag name="text"> + <Begin><xsl:text/></Begin> + </Tag> + <Tag name="value-of"> + <Begin><xsl:value-of select="</Begin> + <End>"/></End> + </Tag> + <Tag name="variable"> + <Begin><xsl:variable select="</Begin> + <End>"/></End> + </Tag> + <Tag name="when"> + <Begin><xsl:when test="</Begin> + <End>> </xsl:when></End> + </Tag> + <Tag name="with-param"> + <Begin><xsl:with-param name="</Begin> + <End>"></xsl:with-param></End> + </Tag> +</TagGroup> + +<TagGroup _name="XSLT - Functions" sort="true"> + <Tag name="boolean"> + <Begin>boolean(</Begin> + <End>)</End> + </Tag> + <Tag name="ceiling"> + <Begin>ceiling(</Begin> + <End>)</End> + </Tag> + <Tag name="comment"> + <Begin>comment()</Begin> + </Tag> + <Tag name="concat"> + <Begin>concat(</Begin> + <End>,,)</End> + </Tag> + <Tag name="contains"> + <Begin>contains(</Begin> + <End>,)</End> + </Tag> + <Tag name="count"> + <Begin>count(</Begin> + <End>)</End> + </Tag> + <Tag name="current"> + <Begin>current()</Begin> + </Tag> + <Tag name="document"> + <Begin>document(</Begin> + <End>,)</End> + </Tag> + <Tag name="element-available"> + <Begin>element-available(</Begin> + <End>)</End> + </Tag> + <Tag name="false"> + <Begin>false()</Begin> + </Tag> + <Tag name="floor"> + <Begin>floor(</Begin> + <End>)</End> + </Tag> + <Tag name="format-number"> + <Begin>format-number(</Begin> + <End>,,)</End> + </Tag> + <Tag name="function-available"> + <Begin>function-available(</Begin> + <End>)</End> + </Tag> + <Tag name="generate-id"> + <Begin>generate-id(</Begin> + <End>)</End> + </Tag> + <Tag name="id"> + <Begin>id(</Begin> + <End>)</End> + </Tag> + <Tag name="key"> + <Begin>key(</Begin> + <End>,)</End> + </Tag> + <Tag name="lang"> + <Begin>lang(</Begin> + <End>)</End> + </Tag> + <Tag name="last"> + <Begin>last()</Begin> + </Tag> + <Tag name="local-name"> + <Begin>local-name(</Begin> + <End>)</End> + </Tag> + <Tag name="name"> + <Begin>name(</Begin> + <End>)</End> + </Tag> + <Tag name="namespace-uri"> + <Begin>namespace-uri(</Begin> + <End>)</End> + </Tag> + <Tag name="node"> + <Begin>node()</Begin> + </Tag> + <Tag name="normalize-space"> + <Begin>normalize-space(</Begin> + <End>)</End> + </Tag> + <Tag name="not"> + <Begin>not(</Begin> + <End>)</End> + </Tag> + <Tag name="number"> + <Begin>number(</Begin> + <End>)</End> + </Tag> + <Tag name="position"> + <Begin>position()</Begin> + </Tag> + <Tag name="processing-instruction"> + <Begin>processing-instruction(</Begin> + <End>)</End> + </Tag> + <Tag name="round"> + <Begin>round(</Begin> + <End>)</End> + </Tag> + <Tag name="starts-with"> + <Begin>starts-with(</Begin> + <End>,)</End> + </Tag> + <Tag name="string"> + <Begin>string(</Begin> + <End>)</End> + </Tag> + <Tag name="string-length"> + <Begin>string-length(</Begin> + <End>)</End> + </Tag> + <Tag name="substring"> + <Begin>substring(</Begin> + <End>,,)</End> + </Tag> + <Tag name="substring-after"> + <Begin>substring-after(</Begin> + <End>,)</End> + </Tag> + <Tag name="substring-before"> + <Begin>substring-before(</Begin> + <End>,)</End> + </Tag> + <Tag name="sum"> + <Begin>sum(</Begin> + <End>)</End> + </Tag> + <Tag name="system-property"> + <Begin>system-property(</Begin> + <End>)</End> + </Tag> + <Tag name="text"> + <Begin>text()</Begin> + </Tag> + <Tag name="translate"> + <Begin>translate(</Begin> + <End>,,)</End> + </Tag> + <Tag name="true"> + <Begin>true()</Begin> + </Tag> + <Tag name="unparsed-entity-uri"> + <Begin>unparsed-entity-uri(</Begin> + <End>)</End> + </Tag> +</TagGroup> + +<TagGroup _name="XSLT - Axes" sort="true"> + <Tag _name="ancestor"> + <Begin>ancestor::</Begin> + </Tag> + <Tag _name="ancestor-or-self"> + <Begin>ancestor-or-self::</Begin> + </Tag> + <Tag _name="attribute"> + <Begin>@</Begin> + </Tag> + <Tag _name="child"> + <Begin>child::</Begin> + </Tag> + <Tag _name="descendant"> + <Begin>descendant::</Begin> + </Tag> + <Tag _name="descendant-or-self"> + <Begin>//</Begin> + </Tag> + <Tag _name="following"> + <Begin>following::</Begin> + </Tag> + <Tag _name="following-sibling"> + <Begin>following-sibling::</Begin> + </Tag> + <Tag _name="namespace"> + <Begin>namespace::</Begin> + </Tag> + <Tag _name="parent"> + <Begin>..</Begin> + </Tag> + <Tag _name="preceding"> + <Begin>preceding::</Begin> + </Tag> + <Tag _name="preceding-sibling"> + <Begin>preceding-sibling::</Begin> + </Tag> + <Tag _name="self"> + <Begin>.</Begin> + </Tag> +</TagGroup> +</TagList> diff --git a/plugins/taglist/XUL.tags.xml.in b/plugins/taglist/XUL.tags.xml.in new file mode 100755 index 00000000..fc4c26a7 --- /dev/null +++ b/plugins/taglist/XUL.tags.xml.in @@ -0,0 +1,536 @@ +<?xml version="1.0" encoding="UTF-8"?> +<TagList xmlns="http://gedit.sourceforge.net/some-location"> +<TagGroup _name="XUL - Tags" sort="true"> + + <Tag name="action"> + <Begin><action></Begin> + <End></action></End> + </Tag> + + <Tag name="arrowscrollbox"> + <Begin><arrowscrollbox orient="vertical" flex="1"></Begin> + <End></arrowscrollbox></End> + </Tag> + + <Tag name="bbox"> + <Begin><bbox></Begin> + <End></bbox></End> + </Tag> + + <Tag name="binding"> + <Begin><binding id=""></Begin> + <End></binding></End> + </Tag> + + <Tag name="bindings"> + <Begin><bindings xmlns="http://www.mozilla.org/xbl"></Begin> + <End></bindings></End> + </Tag> + + <Tag name="box"> + <Begin><box orient=""></Begin> + <End></box></End> + </Tag> + + <Tag name="broadcaster"> + <Begin><broadcaster id="" label=""/></Begin> + </Tag> + + <Tag name="broadcasterset"> + <Begin><broadcasterset></Begin> + <End></broadcasterset></End> + </Tag> + + <Tag name="button"> + <Begin><button id="" label="" oncommand=""/></Begin> + </Tag> + + <Tag name="browser"> + <Begin><browser src="" type="content" flex="1"/></Begin> + </Tag> + + <Tag name="checkbox"> + <Begin><checkbox id="" checked="false" label=""/></Begin> + </Tag> + + <Tag name="caption"> + <Begin><caption label=""/></Begin> + </Tag> + + <Tag name="colorpicker"> + <Begin><colorpicker></Begin> + <End></colorpicker></End> + </Tag> + + <Tag name="column"> + <Begin><column flex="1"/></Begin> + </Tag> + + <Tag name="columns"> + <Begin><columns></Begin> + <End></columns></End> + </Tag> + + <Tag name="commandset"> + <Begin><commandset id="" commandupdater="true" events="focus" oncommandupdate=""/></Begin> + <End></commandset></End> + </Tag> + + <Tag name="command"> + <Begin><command id="" oncommand=""/></Begin> + </Tag> + + <Tag name="conditions"> + <Begin><conditions></Begin> + <End></conditions></End> + </Tag> + + <Tag name="content"> + <Begin><content uri=""/></Begin> + </Tag> + + <Tag name="deck"> + <Begin><deck selectedIndex="1"></Begin> + <End></deck></End> + </Tag> + + <Tag name="description"> + <Begin><description></Begin> + <End></description></End> + </Tag> + + <Tag name="dialog"> + <Begin><dialog id="" title="" + xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" + buttons="accept,cancel" + ondialogaccept="" + ondialogcancel=""></Begin> + <End></dialog></End> + </Tag> + + <Tag name="dialogheader"> + <Begin><dialogheader title="" description=""/></Begin> + </Tag> + + <Tag name="editor"> + <Begin><editor src=""/></Begin> + </Tag> + + <Tag name="grid"> + <Begin><grid></Begin> + <End></grid></End> + </Tag> + + <Tag name="grippy"> + <Begin><grippy></Begin> + <End></grippy></End> + </Tag> + + <Tag name="groupbox"> + <Begin><groupbox flex="1"><caption label=""></Begin> + <End></groupbox></End> + </Tag> + + <Tag name="hbox"> + <Begin><hbox flex="1"></Begin> + <End></hbox></End> + </Tag> + + <Tag name="iframe"> + <Begin><iframe id="" src="" flex="1"/></Begin> + </Tag> + + <Tag name="image"> + <Begin><image id="" src=""/></Begin> + </Tag> + + <Tag name="key"> + <Begin><key id="" modifiers="control alt" key="" onkeypress=""/></Begin> + </Tag> + + <Tag name="keyset"> + <Begin><keyset></Begin> + <End></keyset></End> + </Tag> + + <Tag name="label"> + <Begin><label value="" control=""/></Begin> + </Tag> + + <Tag name="listbox"> + <Begin><listbox rows=""></Begin> + <End></listbox></End> + </Tag> + + <Tag name="listcell"> + <Begin><listcell label=""/></Begin> + </Tag> + + <Tag name="listcol"> + <Begin><listcol></Begin> + <End></listcol></End> + </Tag> + + <Tag name="listcols"> + <Begin><listcols></Begin> + <End></listcols></End> + </Tag> + + <Tag name="listhead"> + <Begin><listhead></Begin> + <End></listhead></End> + </Tag> + + <Tag name="listheader"> + <Begin><listheader label="" flex="1"/></Begin> + </Tag> + + <Tag name="listitem"> + <Begin><listitem id="" value="" label=""/></Begin> + </Tag> + + <Tag name="member"> + <Begin><member container="" child=""/></Begin> + </Tag> + + <Tag name="menu"> + <Begin><menu accesskey=""></Begin> + <End></menu></End> + </Tag> + + <Tag name="menubar"> + <Begin><menubar></Begin> + <End></menubar></End> + </Tag> + + <Tag name="menuitem"> + <Begin><menuitem value="" label="" accesskey="" acceltext="" oncommand=""/></Begin> + </Tag> + + <Tag name="menulist"> + <Begin><menulist label=""></Begin> + <End></menulist></End> + </Tag> + + <Tag name="menupopup"> + <Begin><menupopup id=""></Begin> + <End></menupopup></End> + </Tag> + + <Tag name="menuseparator"> + <Begin><menuseparator/></Begin> + </Tag> + + <Tag name="observes"> + <Begin><observes element="" attribute="" onbroadcast=""/></Begin> + </Tag> + + <Tag name="overlay"> + <Begin><overlay id="" + xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"></Begin> + <End></overlay></End> + </Tag> + + <Tag name="page"> + <Begin><page></Begin> + <End></page></End> + </Tag> + + <Tag name="popup"> + <Begin><popup id="" position="after_start"></Begin> + <End></popup></End> + </Tag> + + <Tag name="popupset"> + <Begin><popupset></Begin> + <End></popupset></End> + </Tag> + + <Tag name="preference"> + <Begin><preference></Begin> + <End></preference></End> + </Tag> + + <Tag name="preferences"> + <Begin><preferences></Begin> + <End></preferences></End> + </Tag> + + <Tag name="prefpane"> + <Begin><prefpane></Begin> + <End></prefpane></End> + </Tag> + + <Tag name="prefwindow"> + <Begin><prefwindow></Begin> + <End></prefwindow></End> + </Tag> + + <Tag name="progressmeter"> + <Begin><progressmeter id="" mode="determined" value="50%"/></Begin> + </Tag> + + <Tag name="radio"> + <Begin><radio id="" value="" name="" label=""/></Begin> + </Tag> + + <Tag name="radiogroup"> + <Begin><radiogroup></Begin> + <End></radiogroup></End> + </Tag> + + <Tag name="resizer"> + <Begin><resizer></Begin> + <End></resizer></End> + </Tag> + + <Tag name="richlistbox"> + <Begin><richlistbox></Begin> + <End></richlistbox></End> + </Tag> + + <Tag name="richlistitem"> + <Begin><richlistitem></Begin> + <End></richlistitem></End> + </Tag> + + <Tag name="row"> + <Begin><row flex="1"></Begin> + <End></row></End> + </Tag> + + <Tag name="rows"> + <Begin><rows></Begin> + <End></rows></End> + </Tag> + + <Tag name="rule"> + <Begin><rule></Begin> + <End></rule></End> + </Tag> + + <Tag name="script"> + <Begin><script src="" language="Javascript"></Begin> + <End></script></End> + </Tag> + + <Tag name="scrollbar"> + <Begin><scrollbar id="" orient="vertical" curpos="20" maxpos="100" increment="1" pageincrement="10"/></Begin> + </Tag> + + <Tag name="scrollbox"> + <Begin><scrollbox></Begin> + <End></scrollbox></End> + </Tag> + + <Tag name="scrollcorner"> + <Begin><scrollcorner></Begin> + <End></scrollcorner></End> + </Tag> + + <Tag name="separator"> + <Begin><separator></Begin> + <End></separator></End> + </Tag> + + <Tag name="spacer"> + <Begin><spacer flex="1"/></Begin> + </Tag> + + <Tag name="splitter"> + <Begin><splitter state="open" collapse="before" resizebefore="closest" resizeafter="grow"><grippy/></Begin> + <End></splitter></End> + </Tag> + + <Tag name="stack"> + <Begin><stack></Begin> + <End></stack></End> + </Tag> + + <Tag name="statusbar"> + <Begin><statusbar></Begin> + <End></statusbar></End> + </Tag> + + <Tag name="statusbarpanel"> + <Begin><statusbarpanel id="" label=""></Begin> + <End></statusbarpanel></End> + </Tag> + + <Tag name="stringbundle"> + <Begin><stringbundle id="" src=""/></Begin> + </Tag> + + <Tag name="stringbundleset"> + <Begin><stringbundleset></Begin> + <End></stringbundleset></End> + </Tag> + + <Tag name="tab"> + <Begin><tab id="" label=""/></Begin> + </Tag> + + <Tag name="tabbrowser"> + <Begin><tabbrowser></Begin> + <End></tabbrowser></End> + </Tag> + + <Tag name="tabbox"> + <Begin><tabbox id=""></Begin> + <End></tabbox></End> + </Tag> + + <Tag name="tabpanel"> + <Begin><tabpanel id=""></Begin> + <End></tabpanel></End> + </Tag> + + <Tag name="tabpanels"> + <Begin><tabpanels></Begin> + <End></tabpanels></End> + </Tag> + + <Tag name="tabs"> + <Begin><tabs></Begin> + <End></tabs></End> + </Tag> + + <Tag name="template"> + <Begin><template></Begin> + <End></template></End> + </Tag> + + <Tag name="textnode"> + <Begin><textnode></Begin> + <End></textnode></End> + </Tag> + + <Tag name="textbox"> + <Begin><textbox id="" value="" multiline="false"/></Begin> + </Tag> + + <Tag name="titlebar"> + <Begin><titlebar></Begin> + <End></titlebar></End> + </Tag> + + <Tag name="toolbar"> + <Begin><toolbar id=""></Begin> + <End></toolbar></End> + </Tag> + + <Tag name="toolbarbutton"> + <Begin><toolbarbutton id="" label=""/></Begin> + </Tag> + + <Tag name="toolbargrippy"> + <Begin><toolbargrippy></Begin> + <End></toolbargrippy></End> + </Tag> + + <Tag name="toolbaritem"> + <Begin><toolbaritem></Begin> + <End></toolbaritem></End> + </Tag> + + <Tag name="toolbarpalette"> + <Begin><toolbarpalette></Begin> + <End></toolbarpalette></End> + </Tag> + + <Tag name="toolbarseparator"> + <Begin><toolbarseparator></Begin> + <End></toolbarseparator></End> + </Tag> + + <Tag name="toolbarset"> + <Begin><toolbarset></Begin> + <End></toolbarset></End> + </Tag> + + <Tag name="toolbarspacer"> + <Begin><toolbarspacer></Begin> + <End></toolbarspacer></End> + </Tag> + + <Tag name="toolbarspring"> + <Begin><toolbarspring></Begin> + <End></toolbarspring></End> + </Tag> + + <Tag name="toolbox"> + <Begin><toolbox></Begin> + <End></toolbox></End> + </Tag> + + <Tag name="tooltip"> + <Begin><tooltip id="" orient="vertical"></Begin> + <End></tooltip></End> + </Tag> + + <Tag name="tree"> + <Begin><tree id="" flex="1"></Begin> + <End></tree></End> + </Tag> + + <Tag name="treecell"> + <Begin><treecell label=""/></Begin> + </Tag> + + <Tag name="treechildren"> + <Begin><treechildren></Begin> + <End></treechildren></End> + </Tag> + + <Tag name="treecol"> + <Begin><treecol label="" flex="1" primary="true"/></Begin> + </Tag> + + <Tag name="treecols"> + <Begin><treecols></Begin> + <End></treecols></End> + </Tag> + + <Tag name="treeitem"> + <Begin><treeitem container="true" open="true"></Begin> + <End></treeitem></End> + </Tag> + + <Tag name="treerow"> + <Begin><treerow></Begin> + <End></treerow></End> + </Tag> + + <Tag name="treeseparator"> + <Begin><treeseparator></Begin> + <End></treeseparator></End> + </Tag> + + <Tag name="triple"> + <Begin><triple></Begin> + <End></triple></End> + </Tag> + + <Tag name="vbox"> + <Begin><vbox flex="1"></Begin> + <End></vbox></End> + </Tag> + + <Tag name="window"> + <Begin><window id="" title="" orient="horizontal" pageid="" next="" + xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"></Begin> + <End></window></End> + </Tag> + + <Tag name="wizard"> + <Begin><wizard id="" title="" wizardnext="" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"></Begin> + <End></wizard></End> + </Tag> + + <Tag name="wizardpage"> + <Begin><wizardpage description="" onwizardfinish="" pageadvanced=""></Begin> + <End></wizardpage></End> + </Tag> + +</TagGroup> +</TagList> diff --git a/plugins/taglist/gedit-taglist-plugin-panel.c b/plugins/taglist/gedit-taglist-plugin-panel.c new file mode 100755 index 00000000..d66acc08 --- /dev/null +++ b/plugins/taglist/gedit-taglist-plugin-panel.c @@ -0,0 +1,776 @@ +/* + * gedit-taglist-plugin-panel.c + * This file is part of gedit + * + * Copyright (C) 2005 - Paolo Maggi + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/* + * Modified by the gedit Team, 2005. See the AUTHORS file for a + * list of people on the gedit Team. + * See the ChangeLog files for a list of changes. + * + * $Id$ + */ + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include <string.h> + +#include "gedit-taglist-plugin-panel.h" +#include "gedit-taglist-plugin-parser.h" + +#include <gedit/gedit-utils.h> +#include <gedit/gedit-debug.h> +#include <gedit/gedit-plugin.h> + +#include <gdk/gdkkeysyms.h> +#include <glib/gi18n.h> + +#define GEDIT_TAGLIST_PLUGIN_PANEL_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE ((object), \ + GEDIT_TYPE_TAGLIST_PLUGIN_PANEL, \ + GeditTaglistPluginPanelPrivate)) + +enum +{ + COLUMN_TAG_NAME, + COLUMN_TAG_INDEX_IN_GROUP, + NUM_COLUMNS +}; + +struct _GeditTaglistPluginPanelPrivate +{ + GeditWindow *window; + + GtkWidget *tag_groups_combo; + GtkWidget *tags_list; + GtkWidget *preview; + + TagGroup *selected_tag_group; + + gchar *data_dir; +}; + +GEDIT_PLUGIN_DEFINE_TYPE (GeditTaglistPluginPanel, gedit_taglist_plugin_panel, GTK_TYPE_VBOX) + +enum +{ + PROP_0, + PROP_WINDOW, +}; + +static void +set_window (GeditTaglistPluginPanel *panel, + GeditWindow *window) +{ + g_return_if_fail (panel->priv->window == NULL); + g_return_if_fail (GEDIT_IS_WINDOW (window)); + + panel->priv->window = window; + + /* TODO */ +} + +static void +gedit_taglist_plugin_panel_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + GeditTaglistPluginPanel *panel = GEDIT_TAGLIST_PLUGIN_PANEL (object); + + switch (prop_id) + { + case PROP_WINDOW: + set_window (panel, g_value_get_object (value)); + break; + + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gedit_taglist_plugin_panel_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + GeditTaglistPluginPanel *panel = GEDIT_TAGLIST_PLUGIN_PANEL (object); + + switch (prop_id) + { + case PROP_WINDOW: + g_value_set_object (value, + GEDIT_TAGLIST_PLUGIN_PANEL_GET_PRIVATE (panel)->window); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gedit_taglist_plugin_panel_finalize (GObject *object) +{ + GeditTaglistPluginPanel *panel = GEDIT_TAGLIST_PLUGIN_PANEL (object); + + g_free (panel->priv->data_dir); + + G_OBJECT_CLASS (gedit_taglist_plugin_panel_parent_class)->finalize (object); +} + +static void +gedit_taglist_plugin_panel_class_init (GeditTaglistPluginPanelClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + object_class->finalize = gedit_taglist_plugin_panel_finalize; + object_class->get_property = gedit_taglist_plugin_panel_get_property; + object_class->set_property = gedit_taglist_plugin_panel_set_property; + + g_object_class_install_property (object_class, + PROP_WINDOW, + g_param_spec_object ("window", + "Window", + "The GeditWindow this GeditTaglistPluginPanel is associated with", + GEDIT_TYPE_WINDOW, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT_ONLY)); + + g_type_class_add_private (object_class, sizeof(GeditTaglistPluginPanelPrivate)); +} + +static void +insert_tag (GeditTaglistPluginPanel *panel, + Tag *tag, + gboolean grab_focus) +{ + GeditView *view; + GtkTextBuffer *buffer; + GtkTextIter start, end; + GtkTextIter cursor; + gboolean sel = FALSE; + + gedit_debug (DEBUG_PLUGINS); + + view = gedit_window_get_active_view (panel->priv->window); + g_return_if_fail (view != NULL); + + buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view)); + + gtk_text_buffer_begin_user_action (buffer); + + /* always insert the begin tag at the beginning of the selection + * and the end tag at the end, if there is no selection they will + * be automatically inserted at the cursor position. + */ + + if (tag->begin != NULL) + { + sel = gtk_text_buffer_get_selection_bounds (buffer, + &start, + &end); + + gtk_text_buffer_insert (buffer, + &start, + (gchar *)tag->begin, + -1); + + /* get iterators again since they have been invalidated and move + * the cursor after the selection */ + gtk_text_buffer_get_selection_bounds (buffer, + &start, + &cursor); + } + + if (tag->end != NULL) + { + sel = gtk_text_buffer_get_selection_bounds (buffer, + &start, + &end); + + gtk_text_buffer_insert (buffer, + &end, + (gchar *)tag->end, + -1); + + /* if there is no selection and we have a paired tag, move the + * cursor between the pair, otherwise move it at the end */ + if (!sel) + { + gint offset; + + offset = gtk_text_iter_get_offset (&end) - + g_utf8_strlen ((gchar *)tag->end, -1); + + gtk_text_buffer_get_iter_at_offset (buffer, + &end, + offset); + } + + cursor = end; + } + + gtk_text_buffer_place_cursor (buffer, &cursor); + + gtk_text_buffer_end_user_action (buffer); + + if (grab_focus) + gtk_widget_grab_focus (GTK_WIDGET (view)); +} + +static void +tag_list_row_activated_cb (GtkTreeView *tag_list, + GtkTreePath *path, + GtkTreeViewColumn *column, + GeditTaglistPluginPanel *panel) +{ + GtkTreeIter iter; + GtkTreeModel *model; + gint index; + + gedit_debug (DEBUG_PLUGINS); + + model = gtk_tree_view_get_model (tag_list); + + gtk_tree_model_get_iter (model, &iter, path); + g_return_if_fail (&iter != NULL); + + gtk_tree_model_get (model, &iter, COLUMN_TAG_INDEX_IN_GROUP, &index, -1); + + gedit_debug_message (DEBUG_PLUGINS, "Index: %d", index); + + insert_tag (panel, + (Tag*)g_list_nth_data (panel->priv->selected_tag_group->tags, index), + TRUE); +} + +static gboolean +tag_list_key_press_event_cb (GtkTreeView *tag_list, + GdkEventKey *event, + GeditTaglistPluginPanel *panel) +{ + gboolean grab_focus; + + grab_focus = (event->state & GDK_CONTROL_MASK) != 0; + + if (event->keyval == GDK_Return) + { + GtkTreeModel *model; + GtkTreeSelection *selection; + GtkTreeIter iter; + gint index; + + gedit_debug_message (DEBUG_PLUGINS, "RETURN Pressed"); + + model = gtk_tree_view_get_model (tag_list); + + selection = gtk_tree_view_get_selection (tag_list); + + if (gtk_tree_selection_get_selected (selection, NULL, &iter)) + { + gtk_tree_model_get (model, &iter, COLUMN_TAG_INDEX_IN_GROUP, &index, -1); + + gedit_debug_message (DEBUG_PLUGINS, "Index: %d", index); + + insert_tag (panel, + (Tag*)g_list_nth_data (panel->priv->selected_tag_group->tags, index), + grab_focus); + } + + return TRUE; + } + + return FALSE; +} + +static GtkTreeModel* +create_model (GeditTaglistPluginPanel *panel) +{ + gint i = 0; + GtkListStore *store; + GtkTreeIter iter; + GList *list; + + gedit_debug (DEBUG_PLUGINS); + + /* create list store */ + store = gtk_list_store_new (NUM_COLUMNS, G_TYPE_STRING, G_TYPE_INT); + + /* add data to the list store */ + list = panel->priv->selected_tag_group->tags; + + while (list != NULL) + { + const gchar* tag_name; + + tag_name = (gchar *)((Tag*)list->data)->name; + + gedit_debug_message (DEBUG_PLUGINS, "%d : %s", i, tag_name); + + gtk_list_store_append (store, &iter); + gtk_list_store_set (store, &iter, + COLUMN_TAG_NAME, tag_name, + COLUMN_TAG_INDEX_IN_GROUP, i, + -1); + ++i; + + list = g_list_next (list); + } + + gedit_debug_message (DEBUG_PLUGINS, "Rows: %d ", + gtk_tree_model_iter_n_children (GTK_TREE_MODEL (store), NULL)); + + return GTK_TREE_MODEL (store); +} + +static void +populate_tags_list (GeditTaglistPluginPanel *panel) +{ + GtkTreeModel* model; + + gedit_debug (DEBUG_PLUGINS); + + g_return_if_fail (taglist != NULL); + + model = create_model (panel); + gtk_tree_view_set_model (GTK_TREE_VIEW (panel->priv->tags_list), + model); + g_object_unref (model); +} + +static TagGroup * +find_tag_group (const gchar *name) +{ + GList *l; + + gedit_debug (DEBUG_PLUGINS); + + g_return_val_if_fail (taglist != NULL, NULL); + + for (l = taglist->tag_groups; l != NULL; l = g_list_next (l)) + { + if (strcmp (name, (gchar *)((TagGroup*)l->data)->name) == 0) + return (TagGroup*)l->data; + } + + return NULL; +} + +static void +populate_tag_groups_combo (GeditTaglistPluginPanel *panel) +{ + GList *l; + GtkComboBox *combo; + + gedit_debug (DEBUG_PLUGINS); + + combo = GTK_COMBO_BOX (panel->priv->tag_groups_combo); + + if (taglist == NULL) + return; + + for (l = taglist->tag_groups; l != NULL; l = g_list_next (l)) + { + gtk_combo_box_append_text (combo, + (gchar *)((TagGroup*)l->data)->name); + } + + gtk_combo_box_set_active (combo, 0); + + return; +} + +static void +selected_group_changed (GtkComboBox *combo, + GeditTaglistPluginPanel *panel) +{ + gchar* group_name; + + gedit_debug (DEBUG_PLUGINS); + + group_name = gtk_combo_box_get_active_text (combo); + + if ((group_name == NULL) || (strlen (group_name) <= 0)) + { + g_free (group_name); + return; + } + + if ((panel->priv->selected_tag_group == NULL) || + (strcmp (group_name, (gchar *)panel->priv->selected_tag_group->name) != 0)) + { + panel->priv->selected_tag_group = find_tag_group (group_name); + g_return_if_fail (panel->priv->selected_tag_group != NULL); + + gedit_debug_message (DEBUG_PLUGINS, + "New selected group: %s", + panel->priv->selected_tag_group->name); + + populate_tags_list (panel); + } + + /* Clean up preview */ + gtk_label_set_text (GTK_LABEL (panel->priv->preview), + ""); + + g_free (group_name); +} + +static gchar * +create_preview_string (Tag *tag) +{ + GString *str; + + str = g_string_new ("<tt><small>"); + + if (tag->begin != NULL) + { + gchar *markup; + + markup = g_markup_escape_text ((gchar *)tag->begin, -1); + g_string_append (str, markup); + g_free (markup); + } + + if (tag->end != NULL) + { + gchar *markup; + + markup = g_markup_escape_text ((gchar *)tag->end, -1); + g_string_append (str, markup); + g_free (markup); + } + + g_string_append (str, "</small></tt>"); + + return g_string_free (str, FALSE); +} + +static void +update_preview (GeditTaglistPluginPanel *panel, + Tag *tag) +{ + gchar *str; + + str = create_preview_string (tag); + + gtk_label_set_markup (GTK_LABEL (panel->priv->preview), + str); + + g_free (str); +} + +static void +tag_list_cursor_changed_cb (GtkTreeView *tag_list, + gpointer data) +{ + GtkTreeModel *model; + GtkTreeSelection *selection; + GtkTreeIter iter; + gint index; + + GeditTaglistPluginPanel *panel = (GeditTaglistPluginPanel *)data; + + model = gtk_tree_view_get_model (tag_list); + + selection = gtk_tree_view_get_selection (tag_list); + + if (gtk_tree_selection_get_selected (selection, NULL, &iter)) + { + gtk_tree_model_get (model, &iter, COLUMN_TAG_INDEX_IN_GROUP, &index, -1); + + gedit_debug_message (DEBUG_PLUGINS, "Index: %d", index); + + update_preview (panel, + (Tag*)g_list_nth_data (panel->priv->selected_tag_group->tags, index)); + } +} + +static gboolean +tags_list_query_tooltip_cb (GtkWidget *widget, + gint x, + gint y, + gboolean keyboard_tip, + GtkTooltip *tooltip, + GeditTaglistPluginPanel *panel) +{ + GtkTreeIter iter; + GtkTreeModel *model; + GtkTreePath *path = NULL; + gint index; + Tag *tag; + + model = gtk_tree_view_get_model (GTK_TREE_VIEW (widget)); + + if (keyboard_tip) + { + gtk_tree_view_get_cursor (GTK_TREE_VIEW (widget), + &path, + NULL); + + if (path == NULL) + { + return FALSE; + } + } + else + { + gint bin_x, bin_y; + + gtk_tree_view_convert_widget_to_bin_window_coords (GTK_TREE_VIEW (widget), + x, y, + &bin_x, &bin_y); + + if (!gtk_tree_view_get_path_at_pos (GTK_TREE_VIEW (widget), + bin_x, bin_y, + &path, + NULL, NULL, NULL)) + { + return FALSE; + } + } + + gtk_tree_model_get_iter (model, &iter, path); + gtk_tree_model_get (model, &iter, + COLUMN_TAG_INDEX_IN_GROUP, &index, + -1); + + tag = g_list_nth_data (panel->priv->selected_tag_group->tags, index); + if (tag != NULL) + { + gchar *tip; + + tip = create_preview_string (tag); + gtk_tooltip_set_markup (tooltip, tip); + g_free (tip); + gtk_tree_path_free (path); + + return TRUE; + } + + gtk_tree_path_free (path); + + return FALSE; +} + +static gboolean +expose_event_cb (GtkWidget *panel, + GdkEventExpose *event, + gpointer user_data) +{ + GeditTaglistPluginPanel *ppanel = GEDIT_TAGLIST_PLUGIN_PANEL (panel); + + gedit_debug (DEBUG_PLUGINS); + + /* If needed load taglists from files at the first expose */ + if (taglist == NULL) + create_taglist (ppanel->priv->data_dir); + + /* And populate combo box */ + populate_tag_groups_combo (GEDIT_TAGLIST_PLUGIN_PANEL (panel)); + + /* We need to manage only the first expose event -> disconnect */ + g_signal_handlers_disconnect_by_func (panel, expose_event_cb, NULL); + + return FALSE; +} + +static void +set_combo_tooltip (GtkWidget *widget, + gpointer data) +{ + if (GTK_IS_BUTTON (widget)) + { + gtk_widget_set_tooltip_text (widget, + _("Select the group of tags you want to use")); + } +} + +static void +realize_tag_groups_combo (GtkWidget *combo, + gpointer data) +{ + gtk_container_forall (GTK_CONTAINER (combo), + set_combo_tooltip, + NULL); +} + +static void +add_preview_widget (GeditTaglistPluginPanel *panel) +{ + GtkWidget *expander; + GtkWidget *frame; + + expander = gtk_expander_new_with_mnemonic (_("_Preview")); + + panel->priv->preview = gtk_label_new (NULL); + gtk_widget_set_size_request (panel->priv->preview, -1, 80); + + gtk_label_set_line_wrap (GTK_LABEL (panel->priv->preview), TRUE); + gtk_label_set_use_markup (GTK_LABEL (panel->priv->preview), TRUE); + gtk_misc_set_alignment (GTK_MISC (panel->priv->preview), 0, 0); + gtk_misc_set_padding (GTK_MISC (panel->priv->preview), 6, 6); + gtk_label_set_selectable (GTK_LABEL (panel->priv->preview), TRUE); + gtk_label_set_selectable (GTK_LABEL (panel->priv->preview), TRUE); + gtk_label_set_ellipsize (GTK_LABEL (panel->priv->preview), + PANGO_ELLIPSIZE_END); + + frame = gtk_frame_new (0); + gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN); + + gtk_container_add (GTK_CONTAINER (frame), + panel->priv->preview); + + gtk_container_add (GTK_CONTAINER (expander), + frame); + + gtk_box_pack_start (GTK_BOX (panel), expander, FALSE, FALSE, 0); + + gtk_widget_show_all (expander); +} + +static void +gedit_taglist_plugin_panel_init (GeditTaglistPluginPanel *panel) +{ + GtkWidget *sw; + GtkTreeViewColumn *column; + GtkCellRenderer *cell; + GList *focus_chain = NULL; + + gedit_debug (DEBUG_PLUGINS); + + panel->priv = GEDIT_TAGLIST_PLUGIN_PANEL_GET_PRIVATE (panel); + panel->priv->data_dir = NULL; + + /* Build the window content */ + panel->priv->tag_groups_combo = gtk_combo_box_new_text (); + gtk_box_pack_start (GTK_BOX (panel), + panel->priv->tag_groups_combo, + FALSE, + TRUE, + 0); + + g_signal_connect (panel->priv->tag_groups_combo, + "realize", + G_CALLBACK (realize_tag_groups_combo), + panel); + + sw = gtk_scrolled_window_new (NULL, NULL); + + gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), + GTK_POLICY_AUTOMATIC, + GTK_POLICY_AUTOMATIC); + gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw), + GTK_SHADOW_IN); + gtk_box_pack_start (GTK_BOX (panel), sw, TRUE, TRUE, 0); + + /* Create tree view */ + panel->priv->tags_list = gtk_tree_view_new (); + + gedit_utils_set_atk_name_description (panel->priv->tag_groups_combo, + _("Available Tag Lists"), + NULL); + gedit_utils_set_atk_name_description (panel->priv->tags_list, + _("Tags"), + NULL); + gedit_utils_set_atk_relation (panel->priv->tag_groups_combo, + panel->priv->tags_list, + ATK_RELATION_CONTROLLER_FOR); + gedit_utils_set_atk_relation (panel->priv->tags_list, + panel->priv->tag_groups_combo, + ATK_RELATION_CONTROLLED_BY); + + gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (panel->priv->tags_list), FALSE); + gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (panel->priv->tags_list), FALSE); + + g_object_set (panel->priv->tags_list, "has-tooltip", TRUE, NULL); + + /* Add the tags column */ + cell = gtk_cell_renderer_text_new (); + column = gtk_tree_view_column_new_with_attributes (_("Tags"), + cell, + "text", + COLUMN_TAG_NAME, + NULL); + gtk_tree_view_append_column (GTK_TREE_VIEW (panel->priv->tags_list), + column); + + gtk_tree_view_set_search_column (GTK_TREE_VIEW (panel->priv->tags_list), + COLUMN_TAG_NAME); + + gtk_container_add (GTK_CONTAINER (sw), panel->priv->tags_list); + + focus_chain = g_list_prepend (focus_chain, panel->priv->tags_list); + focus_chain = g_list_prepend (focus_chain, panel->priv->tag_groups_combo); + + gtk_container_set_focus_chain (GTK_CONTAINER (panel), + focus_chain); + g_list_free (focus_chain); + + add_preview_widget (panel); + + gtk_widget_show_all (GTK_WIDGET (sw)); + gtk_widget_show (GTK_WIDGET (panel->priv->tag_groups_combo)); + + g_signal_connect_after (panel->priv->tags_list, + "row_activated", + G_CALLBACK (tag_list_row_activated_cb), + panel); + g_signal_connect (panel->priv->tags_list, + "key_press_event", + G_CALLBACK (tag_list_key_press_event_cb), + panel); + g_signal_connect (panel->priv->tags_list, + "query-tooltip", + G_CALLBACK (tags_list_query_tooltip_cb), + panel); + g_signal_connect (panel->priv->tags_list, + "cursor_changed", + G_CALLBACK (tag_list_cursor_changed_cb), + panel); + g_signal_connect (panel->priv->tag_groups_combo, + "changed", + G_CALLBACK (selected_group_changed), + panel); + g_signal_connect (panel, + "expose-event", + G_CALLBACK (expose_event_cb), + NULL); +} + +GtkWidget * +gedit_taglist_plugin_panel_new (GeditWindow *window, + const gchar *data_dir) +{ + GeditTaglistPluginPanel *panel; + + g_return_val_if_fail (GEDIT_IS_WINDOW (window), NULL); + + panel = g_object_new (GEDIT_TYPE_TAGLIST_PLUGIN_PANEL, + "window", window, + NULL); + + panel->priv->data_dir = g_strdup (data_dir); + + return GTK_WIDGET (panel); +} diff --git a/plugins/taglist/gedit-taglist-plugin-panel.h b/plugins/taglist/gedit-taglist-plugin-panel.h new file mode 100755 index 00000000..3f8e82d0 --- /dev/null +++ b/plugins/taglist/gedit-taglist-plugin-panel.h @@ -0,0 +1,89 @@ +/* + * gedit-taglist-plugin-panel.h + * This file is part of gedit + * + * Copyright (C) 2005 - Paolo Maggi + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/* + * Modified by the gedit Team, 2005. See the AUTHORS file for a + * list of people on the gedit Team. + * See the ChangeLog files for a list of changes. + * + * $Id$ + */ + +#ifndef __GEDIT_TAGLIST_PLUGIN_PANEL_H__ +#define __GEDIT_TAGLIST_PLUGIN_PANEL_H__ + +#include <gtk/gtk.h> + +#include <gedit/gedit-window.h> + +G_BEGIN_DECLS + +/* + * Type checking and casting macros + */ +#define GEDIT_TYPE_TAGLIST_PLUGIN_PANEL (gedit_taglist_plugin_panel_get_type()) +#define GEDIT_TAGLIST_PLUGIN_PANEL(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GEDIT_TYPE_TAGLIST_PLUGIN_PANEL, GeditTaglistPluginPanel)) +#define GEDIT_TAGLIST_PLUGIN_PANEL_CONST(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GEDIT_TYPE_TAGLIST_PLUGIN_PANEL, GeditTaglistPluginPanel const)) +#define GEDIT_TAGLIST_PLUGIN_PANEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), GEDIT_TYPE_TAGLIST_PLUGIN_PANEL, GeditTaglistPluginPanelClass)) +#define GEDIT_IS_TAGLIST_PLUGIN_PANEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GEDIT_TYPE_TAGLIST_PLUGIN_PANEL)) +#define GEDIT_IS_TAGLIST_PLUGIN_PANEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEDIT_TYPE_TAGLIST_PLUGIN_PANEL)) +#define GEDIT_TAGLIST_PLUGIN_PANEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GEDIT_TYPE_TAGLIST_PLUGIN_PANEL, GeditTaglistPluginPanelClass)) + +/* Private structure type */ +typedef struct _GeditTaglistPluginPanelPrivate GeditTaglistPluginPanelPrivate; + +/* + * Main object structure + */ +typedef struct _GeditTaglistPluginPanel GeditTaglistPluginPanel; + +struct _GeditTaglistPluginPanel +{ + GtkVBox vbox; + + /*< private > */ + GeditTaglistPluginPanelPrivate *priv; +}; + +/* + * Class definition + */ +typedef struct _GeditTaglistPluginPanelClass GeditTaglistPluginPanelClass; + +struct _GeditTaglistPluginPanelClass +{ + GtkVBoxClass parent_class; +}; + +/* + * Public methods + */ +GType gedit_taglist_plugin_panel_register_type (GTypeModule *module); + +GType gedit_taglist_plugin_panel_get_type (void) G_GNUC_CONST; + +GtkWidget *gedit_taglist_plugin_panel_new (GeditWindow *window, + const gchar *data_dir); + +G_END_DECLS + +#endif /* __GEDIT_TAGLIST_PLUGIN_PANEL_H__ */ diff --git a/plugins/taglist/gedit-taglist-plugin-parser.c b/plugins/taglist/gedit-taglist-plugin-parser.c new file mode 100755 index 00000000..e09c0e25 --- /dev/null +++ b/plugins/taglist/gedit-taglist-plugin-parser.c @@ -0,0 +1,655 @@ +/* + * gedit-taglist-plugin-parser.c + * This file is part of gedit + * + * Copyright (C) 2002-2005 - Paolo Maggi + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/* + * Modified by the gedit Team, 2002-2005. See the AUTHORS file for a + * list of people on the gedit Team. + * See the ChangeLog files for a list of changes. + * + * $Id$ + */ + +/* FIXME: we should rewrite the parser to avoid using DOM */ + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include <string.h> +#include <libxml/parser.h> +#include <glib.h> +#include <glib/gi18n.h> + +#include <gedit/gedit-debug.h> + +#include "gedit-taglist-plugin-parser.h" + +/* we screwed up so we still look here for compatibility */ +#define USER_GEDIT_TAGLIST_PLUGIN_LOCATION_LEGACY ".gedit-2/plugins/taglist/" +#define USER_GEDIT_TAGLIST_PLUGIN_LOCATION "gedit/taglist/" + +TagList *taglist = NULL; +static gint taglist_ref_count = 0; + +static gboolean parse_tag (Tag *tag, xmlDocPtr doc, xmlNsPtr ns, xmlNodePtr cur); +static gboolean parse_tag_group (TagGroup *tg, const gchar *fn, + xmlDocPtr doc, xmlNsPtr ns, xmlNodePtr cur, + gboolean sort); +static TagGroup* get_tag_group (const gchar* filename, xmlDocPtr doc, + xmlNsPtr ns, xmlNodePtr cur); +static TagList* lookup_best_lang (TagList *taglist, const gchar *filename, + xmlDocPtr doc, xmlNsPtr ns, xmlNodePtr cur); +static TagList *parse_taglist_file (const gchar* filename); +static TagList *parse_taglist_dir (const gchar *dir); + +static void free_tag (Tag *tag); +static void free_tag_group (TagGroup *tag_group); + +static gboolean +parse_tag (Tag *tag, xmlDocPtr doc, xmlNsPtr ns, xmlNodePtr cur) +{ + /* + gedit_debug_message (DEBUG_PLUGINS, " Tag name: %s", tag->name); + */ + /* We don't care what the top level element name is */ + cur = cur->xmlChildrenNode; + + while (cur != NULL) + { + if ((!xmlStrcmp (cur->name, (const xmlChar *)"Begin")) && + (cur->ns == ns)) + { + tag->begin = xmlNodeListGetString (doc, cur->xmlChildrenNode, 1); + /* + gedit_debug_message (DEBUG_PLUGINS, " - Begin: %s", tag->begin); + */ + } + + if ((!xmlStrcmp (cur->name, (const xmlChar *)"End")) && + (cur->ns == ns)) + { + tag->end = xmlNodeListGetString (doc, cur->xmlChildrenNode, 1); + /* + gedit_debug_message (DEBUG_PLUGINS, " - End: %s", tag->end); + */ + } + + cur = cur->next; + } + + if ((tag->begin == NULL) && (tag->end == NULL)) + return FALSE; + + return TRUE; +} + +static gint +tags_cmp (gconstpointer a, gconstpointer b) +{ + gchar *tag_a = (gchar*)((Tag *)a)->name; + gchar *tag_b = (gchar*)((Tag *)b)->name; + + return g_utf8_collate (tag_a, tag_b); +} + +static gboolean +parse_tag_group (TagGroup *tg, const gchar* fn, xmlDocPtr doc, + xmlNsPtr ns, xmlNodePtr cur, gboolean sort) +{ + gedit_debug_message (DEBUG_PLUGINS, "Parse TagGroup: %s", tg->name); + + /* We don't care what the top level element name is */ + cur = cur->xmlChildrenNode; + + while (cur != NULL) + { + if ((xmlStrcmp (cur->name, (const xmlChar *) "Tag")) || (cur->ns != ns)) + { + g_warning ("The tag list file '%s' is of the wrong type, " + "was '%s', 'Tag' expected.", fn, cur->name); + + return FALSE; + } + else + { + Tag *tag; + + tag = g_new0 (Tag, 1); + + /* Get Tag name */ + tag->name = xmlGetProp (cur, (const xmlChar *) "name"); + + if (tag->name == NULL) + { + /* Error: No name */ + g_warning ("The tag list file '%s' is of the wrong type, " + "Tag without name.", fn); + + g_free (tag); + + return FALSE; + } + else + { + /* Parse Tag */ + if (parse_tag (tag, doc, ns, cur)) + { + /* Prepend Tag to TagGroup */ + tg->tags = g_list_prepend (tg->tags, tag); + } + else + { + /* Error parsing Tag */ + g_warning ("The tag list file '%s' is of the wrong type, " + "error parsing Tag '%s' in TagGroup '%s'.", + fn, tag->name, tg->name); + + free_tag (tag); + + return FALSE; + } + } + } + + cur = cur->next; + } + + if (sort) + tg->tags = g_list_sort (tg->tags, tags_cmp); + else + tg->tags = g_list_reverse (tg->tags); + + return TRUE; +} + +static TagGroup* +get_tag_group (const gchar* filename, xmlDocPtr doc, + xmlNsPtr ns, xmlNodePtr cur) +{ + TagGroup *tag_group; + xmlChar *sort_str; + gboolean sort = FALSE; + + tag_group = g_new0 (TagGroup, 1); + + /* Get TagGroup name */ + tag_group->name = xmlGetProp (cur, (const xmlChar *) "name"); + + sort_str = xmlGetProp (cur, (const xmlChar *) "sort"); + + if ((sort_str != NULL) && + ((xmlStrcasecmp (sort_str, (const xmlChar *) "yes") == 0) || + (xmlStrcasecmp (sort_str, (const xmlChar *) "true") == 0) || + (xmlStrcasecmp (sort_str, (const xmlChar *) "1") == 0))) + { + sort = TRUE; + } + + xmlFree(sort_str); + + if (tag_group->name == NULL) + { + /* Error: No name */ + g_warning ("The tag list file '%s' is of the wrong type, " + "TagGroup without name.", filename); + + g_free (tag_group); + } + else + { + /* Name found */ + gboolean exists = FALSE; + GList *t = taglist->tag_groups; + + /* Check if the tag group already exists */ + while (t && !exists) + { + gchar *tgn = (gchar*)((TagGroup*)(t->data))->name; + + if (strcmp (tgn, (gchar*)tag_group->name) == 0) + { + gedit_debug_message (DEBUG_PLUGINS, + "Tag group '%s' already exists.", tgn); + + exists = TRUE; + + free_tag_group (tag_group); + } + + t = g_list_next (t); + } + + if (!exists) + { + /* Parse tag group */ + if (parse_tag_group (tag_group, filename, doc, ns, cur, sort)) + { + return tag_group; + } + else + { + /* Error parsing TagGroup */ + g_warning ("The tag list file '%s' is of the wrong type, " + "error parsing TagGroup '%s'.", + filename, tag_group->name); + + free_tag_group (tag_group); + } + } + } + return NULL; +} + +static gint +groups_cmp (gconstpointer a, gconstpointer b) +{ + gchar *g_a = (gchar *)((TagGroup *)a)->name; + gchar *g_b = (gchar *)((TagGroup *)b)->name; + + return g_utf8_collate (g_a, g_b); +} + +/* + * tags file is localized by intltool-merge below. + * + * <gedit:TagGroup name="XSLT - Elements"> + * </gedit:TagGroup> + * <gedit:TagGroup xml:lang="am" name="LOCALIZED TEXT"> + * </gedit:TagGroup> + * <gedit:TagGroup xml:lang="ar" name="LOCALIZED TEXT"> + * </gedit:TagGroup> + * ..... + * <gedit:TagGroup name="XSLT - Functions"> + * </gedit:TagGroup> + * ..... + * Therefore need to pick up the best lang on the current locale. + */ +static TagList* +lookup_best_lang (TagList *taglist, const gchar *filename, + xmlDocPtr doc, xmlNsPtr ns, xmlNodePtr cur) +{ + + TagGroup *best_tag_group = NULL; + TagGroup *tag_group; + gint best_lanking = -1; + + /* + * Walk the tree. + * + * First level we expect a list TagGroup + */ + cur = cur->xmlChildrenNode; + + while (cur != NULL) + { + if ((xmlStrcmp (cur->name, (const xmlChar *) "TagGroup")) || (cur->ns != ns)) + { + g_warning ("The tag list file '%s' is of the wrong type, " + "was '%s', 'TagGroup' expected.", filename, cur->name); + xmlFreeDoc (doc); + + return taglist; + } + else + { + const char * const *langs_pointer; + gchar *lang; + gint cur_lanking; + gint i; + + langs_pointer = g_get_language_names (); + + lang = (gchar*) xmlGetProp (cur, (const xmlChar*) "lang"); + cur_lanking = 1; + + /* + * When found a new TagGroup, prepend the best + * tag_group to taglist. In the current intltool-merge, + * the first section is the default lang NULL. + */ + if (lang == NULL) { + if (best_tag_group != NULL) { + taglist->tag_groups = + g_list_prepend (taglist->tag_groups, best_tag_group); + } + + best_tag_group = NULL; + best_lanking = -1; + } + + /* + * If already find the best TagGroup on the current + * locale, ignore the logic. + */ + if (best_lanking != -1 && best_lanking <= cur_lanking) { + cur = cur->next; + continue; + } + + /* try to find the best lang */ + for (i = 0; langs_pointer[i] != NULL; i++) + { + const gchar *best_lang = langs_pointer[i]; + + /* + * if launch on C, POSIX locale or does + * not find the best lang on the current locale, + * this is called. + * g_get_language_names returns lang + * lists with C locale. + */ + if (lang == NULL && + (!g_ascii_strcasecmp (best_lang, "C") || + !g_ascii_strcasecmp (best_lang, "POSIX"))) + { + tag_group = get_tag_group (filename, doc, ns, cur); + if (tag_group != NULL) + { + if (best_tag_group !=NULL) + free_tag_group (best_tag_group); + best_lanking = cur_lanking; + best_tag_group = tag_group; + } + } + + /* if it is possible the best lang is not C */ + else if (lang == NULL) + { + cur_lanking++; + continue; + } + + /* if the best lang is found */ + else if (!g_ascii_strcasecmp (best_lang, lang)) + { + tag_group = get_tag_group (filename, doc, ns, cur); + if (tag_group != NULL) + { + if (best_tag_group !=NULL) + free_tag_group (best_tag_group); + best_lanking = cur_lanking; + best_tag_group = tag_group; + } + } + + cur_lanking++; + } + + if (lang) g_free (lang); + } /* End of else */ + + cur = cur->next; + } /* End of while (cur != NULL) */ + + /* Prepend TagGroup to TagList */ + if (best_tag_group != NULL) { + taglist->tag_groups = + g_list_prepend (taglist->tag_groups, best_tag_group); + } + + taglist->tag_groups = g_list_sort (taglist->tag_groups, groups_cmp); + + return taglist; +} + +static TagList * +parse_taglist_file (const gchar* filename) +{ + xmlDocPtr doc; + + xmlNsPtr ns; + xmlNodePtr cur; + + gedit_debug_message (DEBUG_PLUGINS, "Parse file: %s", filename); + + xmlKeepBlanksDefault (0); + + /* + * build an XML tree from a the file; + */ + doc = xmlParseFile (filename); + if (doc == NULL) + { + g_warning ("The tag list file '%s' is empty.", filename); + + return taglist; + } + + /* + * Check the document is of the right kind + */ + + cur = xmlDocGetRootElement (doc); + + if (cur == NULL) + { + g_warning ("The tag list file '%s' is empty.", filename); + xmlFreeDoc(doc); + return taglist; + } + + ns = xmlSearchNsByHref (doc, cur, + (const xmlChar *) "http://gedit.sourceforge.net/some-location"); + + if (ns == NULL) + { + g_warning ("The tag list file '%s' is of the wrong type, " + "gedit namespace not found.", filename); + xmlFreeDoc (doc); + + return taglist; + } + + if (xmlStrcmp(cur->name, (const xmlChar *) "TagList")) + { + g_warning ("The tag list file '%s' is of the wrong type, " + "root node != TagList.", filename); + xmlFreeDoc (doc); + + return taglist; + } + + /* + * If needed, allocate taglist + */ + + if (taglist == NULL) + taglist = g_new0 (TagList, 1); + + taglist = lookup_best_lang (taglist, filename, doc, ns, cur); + + xmlFreeDoc (doc); + + gedit_debug_message (DEBUG_PLUGINS, "END"); + + return taglist; +} + +static void +free_tag (Tag *tag) +{ + /* + gedit_debug_message (DEBUG_PLUGINS, "Tag: %s", tag->name); + */ + g_return_if_fail (tag != NULL); + + free (tag->name); + + if (tag->begin != NULL) + free (tag->begin); + + if (tag->end != NULL) + free (tag->end); + + g_free (tag); +} + +static void +free_tag_group (TagGroup *tag_group) +{ + GList *l; + + gedit_debug_message (DEBUG_PLUGINS, "Tag group: %s", tag_group->name); + + g_return_if_fail (tag_group != NULL); + + free (tag_group->name); + + for (l = tag_group->tags; l != NULL; l = g_list_next (l)) + { + free_tag ((Tag *) l->data); + } + + g_list_free (tag_group->tags); + g_free (tag_group); + + gedit_debug_message (DEBUG_PLUGINS, "END"); +} + +void +free_taglist (void) +{ + GList *l; + + gedit_debug_message (DEBUG_PLUGINS, "ref_count: %d", taglist_ref_count); + + if (taglist == NULL) + return; + + g_return_if_fail (taglist_ref_count > 0); + + --taglist_ref_count; + if (taglist_ref_count > 0) + return; + + for (l = taglist->tag_groups; l != NULL; l = g_list_next (l)) + { + free_tag_group ((TagGroup *) l->data); + } + + g_list_free (taglist->tag_groups); + g_free (taglist); + taglist = NULL; + + gedit_debug_message (DEBUG_PLUGINS, "Really freed"); +} + +static TagList * +parse_taglist_dir (const gchar *dir) +{ + GError *error = NULL; + GDir *d; + const gchar *dirent; + + gedit_debug_message (DEBUG_PLUGINS, "DIR: %s", dir); + + d = g_dir_open (dir, 0, &error); + if (!d) + { + gedit_debug_message (DEBUG_PLUGINS, "%s", error->message); + g_error_free (error); + return taglist; + } + + while ((dirent = g_dir_read_name (d))) + { + if (g_str_has_suffix (dirent, ".tags") || + g_str_has_suffix (dirent, ".tags.gz")) + { + gchar *tags_file = g_build_filename (dir, dirent, NULL); + parse_taglist_file (tags_file); + g_free (tags_file); + } + } + + g_dir_close (d); + + return taglist; +} + +TagList* create_taglist (const gchar *data_dir) +{ + gchar *pdir; + + gedit_debug_message (DEBUG_PLUGINS, "ref_count: %d", taglist_ref_count); + + if (taglist_ref_count > 0) + { + ++taglist_ref_count; + + return taglist; + } + +#ifndef G_OS_WIN32 + const gchar *home; + const gchar *envvar; + + /* load user's taglists */ + + /* legacy dir */ + home = g_get_home_dir (); + if (home != NULL) + { + pdir = g_build_filename (home, + USER_GEDIT_TAGLIST_PLUGIN_LOCATION_LEGACY, + NULL); + parse_taglist_dir (pdir); + g_free (pdir); + } + + /* Support old libmate env var */ + envvar = g_getenv ("MATE22_USER_DIR"); + if (envvar != NULL) + { + pdir = g_build_filename (envvar, + USER_GEDIT_TAGLIST_PLUGIN_LOCATION, + NULL); + parse_taglist_dir (pdir); + g_free (pdir); + } + else if (home != NULL) + { + pdir = g_build_filename (home, + ".mate2", + USER_GEDIT_TAGLIST_PLUGIN_LOCATION, + NULL); + parse_taglist_dir (pdir); + g_free (pdir); + } + +#else + pdir = g_build_filename (g_get_user_config_dir (), + "gedit", + "taglist", + NULL); + parse_taglist_dir (pdir); + g_free (pdir); +#endif + + /* load system's taglists */ + parse_taglist_dir (data_dir); + + ++taglist_ref_count; + g_return_val_if_fail (taglist_ref_count == 1, taglist); + + return taglist; +} diff --git a/plugins/taglist/gedit-taglist-plugin-parser.h b/plugins/taglist/gedit-taglist-plugin-parser.h new file mode 100755 index 00000000..d008836e --- /dev/null +++ b/plugins/taglist/gedit-taglist-plugin-parser.h @@ -0,0 +1,68 @@ +/* + * gedit-taglist-plugin-parser.h + * This file is part of gedit + * + * Copyright (C) 2002-2005 - Paolo Maggi + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/* + * Modified by the gedit Team, 2002-2005. See the AUTHORS file for a + * list of people on the gedit Team. + * See the ChangeLog files for a list of changes. + * + * $Id$ + */ + +#ifndef __GEDIT_TAGLIST_PLUGIN_PARSER_H__ +#define __GEDIT_TAGLIST_PLUGIN_PARSER_H__ + +#include <libxml/tree.h> +#include <glib.h> + +typedef struct _TagList TagList; +typedef struct _TagGroup TagGroup; +typedef struct _Tag Tag; + +struct _TagList +{ + GList *tag_groups; +}; + +struct _TagGroup +{ + xmlChar *name; + + GList *tags; +}; + +struct _Tag +{ + xmlChar *name; + xmlChar *begin; + xmlChar *end; +}; + +/* Note that the taglist is ref counted */ +extern TagList *taglist; + +TagList* create_taglist (const gchar *data_dir); + +void free_taglist (void); + +#endif /* __GEDIT_TAGLIST_PLUGIN_PARSER_H__ */ + diff --git a/plugins/taglist/gedit-taglist-plugin.c b/plugins/taglist/gedit-taglist-plugin.c new file mode 100755 index 00000000..081fefcb --- /dev/null +++ b/plugins/taglist/gedit-taglist-plugin.c @@ -0,0 +1,160 @@ +/* + * gedit-taglist-plugin.h + * + * Copyright (C) 2002-2005 - Paolo Maggi + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + */ + +/* + * Modified by the gedit Team, 2002-2005. See the AUTHORS file for a + * list of people on the gedit Team. + * See the ChangeLog files for a list of changes. + * + * $Id$ + */ + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include "gedit-taglist-plugin.h" +#include "gedit-taglist-plugin-panel.h" +#include "gedit-taglist-plugin-parser.h" + +#include <glib/gi18n-lib.h> +#include <gmodule.h> + +#include <gedit/gedit-plugin.h> +#include <gedit/gedit-debug.h> + +#define WINDOW_DATA_KEY "GeditTaglistPluginWindowData" + +#define GEDIT_TAGLIST_PLUGIN_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE ((object), GEDIT_TYPE_TAGLIST_PLUGIN, GeditTaglistPluginPrivate)) + +struct _GeditTaglistPluginPrivate +{ + gpointer dummy; +}; + +GEDIT_PLUGIN_REGISTER_TYPE_WITH_CODE (GeditTaglistPlugin, gedit_taglist_plugin, + gedit_taglist_plugin_panel_register_type (module); +) + +static void +gedit_taglist_plugin_init (GeditTaglistPlugin *plugin) +{ + plugin->priv = GEDIT_TAGLIST_PLUGIN_GET_PRIVATE (plugin); + + gedit_debug_message (DEBUG_PLUGINS, "GeditTaglistPlugin initializing"); +} + +static void +gedit_taglist_plugin_finalize (GObject *object) +{ +/* + GeditTaglistPlugin *plugin = GEDIT_TAGLIST_PLUGIN (object); +*/ + gedit_debug_message (DEBUG_PLUGINS, "GeditTaglistPlugin finalizing"); + + free_taglist (); + + G_OBJECT_CLASS (gedit_taglist_plugin_parent_class)->finalize (object); +} + +static void +impl_activate (GeditPlugin *plugin, + GeditWindow *window) +{ + GeditPanel *side_panel; + GtkWidget *taglist_panel; + gchar *data_dir; + + gedit_debug (DEBUG_PLUGINS); + + g_return_if_fail (g_object_get_data (G_OBJECT (window), WINDOW_DATA_KEY) == NULL); + + side_panel = gedit_window_get_side_panel (window); + + data_dir = gedit_plugin_get_data_dir (plugin); + taglist_panel = gedit_taglist_plugin_panel_new (window, data_dir); + g_free (data_dir); + + gedit_panel_add_item_with_stock_icon (side_panel, + taglist_panel, + _("Tags"), + GTK_STOCK_ADD); + + g_object_set_data (G_OBJECT (window), + WINDOW_DATA_KEY, + taglist_panel); +} + +static void +impl_deactivate (GeditPlugin *plugin, + GeditWindow *window) +{ + GeditPanel *side_panel; + gpointer data; + + gedit_debug (DEBUG_PLUGINS); + + data = g_object_get_data (G_OBJECT (window), WINDOW_DATA_KEY); + g_return_if_fail (data != NULL); + + side_panel = gedit_window_get_side_panel (window); + + gedit_panel_remove_item (side_panel, + GTK_WIDGET (data)); + + g_object_set_data (G_OBJECT (window), + WINDOW_DATA_KEY, + NULL); +} + +static void +impl_update_ui (GeditPlugin *plugin, + GeditWindow *window) +{ + gpointer data; + GeditView *view; + + gedit_debug (DEBUG_PLUGINS); + + data = g_object_get_data (G_OBJECT (window), WINDOW_DATA_KEY); + g_return_if_fail (data != NULL); + + view = gedit_window_get_active_view (window); + + gtk_widget_set_sensitive (GTK_WIDGET (data), + (view != NULL) && + gtk_text_view_get_editable (GTK_TEXT_VIEW (view))); +} + +static void +gedit_taglist_plugin_class_init (GeditTaglistPluginClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + GeditPluginClass *plugin_class = GEDIT_PLUGIN_CLASS (klass); + + object_class->finalize = gedit_taglist_plugin_finalize; + + plugin_class->activate = impl_activate; + plugin_class->deactivate = impl_deactivate; + plugin_class->update_ui = impl_update_ui; + + g_type_class_add_private (object_class, sizeof (GeditTaglistPluginPrivate)); +} diff --git a/plugins/taglist/gedit-taglist-plugin.h b/plugins/taglist/gedit-taglist-plugin.h new file mode 100755 index 00000000..d0444e76 --- /dev/null +++ b/plugins/taglist/gedit-taglist-plugin.h @@ -0,0 +1,85 @@ +/* + * gedit-taglist-plugin.h + * + * Copyright (C) 2002-2005 - Paolo Maggi + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + */ + +/* + * Modified by the gedit Team, 2002-2005. See the AUTHORS file for a + * list of people on the gedit Team. + * See the ChangeLog files for a list of changes. + * + * $Id$ + */ + +#ifndef __GEDIT_TAGLIST_PLUGIN_H__ +#define __GEDIT_TAGLIST_PLUGIN_H__ + +#include <glib.h> +#include <glib-object.h> +#include <gedit/gedit-plugin.h> + +G_BEGIN_DECLS + +/* + * Type checking and casting macros + */ +#define GEDIT_TYPE_TAGLIST_PLUGIN (gedit_taglist_plugin_get_type ()) +#define GEDIT_TAGLIST_PLUGIN(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GEDIT_TYPE_TAGLIST_PLUGIN, GeditTaglistPlugin)) +#define GEDIT_TAGLIST_PLUGIN_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GEDIT_TYPE_TAGLIST_PLUGIN, GeditTaglistPluginClass)) +#define GEDIT_IS_TAGLIST_PLUGIN(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GEDIT_TYPE_TAGLIST_PLUGIN)) +#define GEDIT_IS_TAGLIST_PLUGIN_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GEDIT_TYPE_TAGLIST_PLUGIN)) +#define GEDIT_TAGLIST_PLUGIN_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GEDIT_TYPE_TAGLIST_PLUGIN, GeditTaglistPluginClass)) + +/* Private structure type */ +typedef struct _GeditTaglistPluginPrivate GeditTaglistPluginPrivate; + +/* + * Main object structure + */ +typedef struct _GeditTaglistPlugin GeditTaglistPlugin; + +struct _GeditTaglistPlugin +{ + GeditPlugin parent_instance; + + /*< private >*/ + GeditTaglistPluginPrivate *priv; +}; + +/* + * Class definition + */ +typedef struct _GeditTaglistPluginClass GeditTaglistPluginClass; + +struct _GeditTaglistPluginClass +{ + GeditPluginClass parent_class; +}; + +/* + * Public methods + */ +GType gedit_taglist_plugin_get_type (void) G_GNUC_CONST; + +/* All the plugins must implement this function */ +G_MODULE_EXPORT GType register_gedit_plugin (GTypeModule *module); + +G_END_DECLS + +#endif /* __GEDIT_TAGLIST_PLUGIN_H__ */ diff --git a/plugins/taglist/taglist.gedit-plugin.desktop.in b/plugins/taglist/taglist.gedit-plugin.desktop.in new file mode 100755 index 00000000..09d0f2d0 --- /dev/null +++ b/plugins/taglist/taglist.gedit-plugin.desktop.in @@ -0,0 +1,8 @@ +[Gedit Plugin] +Module=taglist +IAge=2 +_Name=Tag list +_Description=Provides a method to easily insert commonly used tags/strings into a document without having to type them. +Authors=Paolo Maggi <[email protected]> +Copyright=Copyright © 2002-2005 Paolo Maggi +Website=http://www.gedit.org |