Greasemonkey Manual:Editing: Difference between revisions

From GreaseSpot Wiki
Jump to navigationJump to search
Tim (talk | contribs)
Added Vim / GVim to Editor matrix.
Aavindraa (talk | contribs)
→‎Picking an Editor: add auto-complete section, remove <center>'s in favor of one text-align:center. not familiar with a lot of these editors. someone fill in?
Line 13: Line 13:
== Picking an Editor ==
== Picking an Editor ==
Most script wrights use a familiar built in text editor such as Windows Notepad, Linux KDE Kwrite/Kate, Linux Gnome gedit, or Mac OS X TextEdit. However some may not include mono-spaced fonts, syntax highlighting and brace matching.  These can be very helpful features when coding.
Most script wrights use a familiar built in text editor such as Windows Notepad, Linux KDE Kwrite/Kate, Linux Gnome gedit, or Mac OS X TextEdit. However some may not include mono-spaced fonts, syntax highlighting and brace matching.  These can be very helpful features when coding.
{| cellpadding="1" style="font-size: small; border-style: solid; background-color: #FFFFE0;"
{| cellpadding="1" style="text-align:center;font-size: small; border-style: solid; background-color: #FFFFE0;"
|+ Common Text Editors
|+ Common Text Editors
|- style="text-align: center; font-size: small;"
|- style="text-align: center; font-size: small;"
Line 24: Line 24:
| colspan="1" style="width: 90px; background-color: #CC9900;"| '''Fixed Font'''
| colspan="1" style="width: 90px; background-color: #CC9900;"| '''Fixed Font'''
| colspan="1" style="width: 90px; background-color: #CC9900;"| '''Syntax Highlight'''
| colspan="1" style="width: 90px; background-color: #CC9900;"| '''Syntax Highlight'''
| colspan="1" style="width: 90px; background-color: #CC9900;"| '''Auto-completion'''
|- style="background-color: white;"
|- style="background-color: white;"
| [http://www.aptana.com/ Aptana]                              || <center>&diams;</center> || <center>&diams;</center> || <center>&diams;</center> || <center>&diams;</center> || <center>&diams;</center> || <center>&diams;</center> || <center>&diams;</center>
| [http://www.aptana.com/ Aptana]                              || &diams; || &diams; || &diams; || &diams; || &diams; || &diams; || &diams; || &diams;
|-
|-
| [http://www.adobe.com/products/dreamweaver/ Dreamweaver]    ||                          ||                          || <center>&diams;</center> || <center>&diams;</center> || <center>&diams;</center> || <center>&diams;</center> || <center>&diams;</center>
| [http://www.adobe.com/products/dreamweaver/ Dreamweaver]    ||                          ||                          || &diams; || &diams; || &diams; || &diams; || &diams; || &diams;
|- style="background-color: white;"
|- style="background-color: white;"
| [http://www.eclipse.org/ Eclipse]                            || <center>&diams;</center> || <center>&diams;</center> || <center>&diams;</center> || <center>&diams;</center> || <center>&diams;</center> || <center>&diams;</center> || <center>&diams;</center>
| [http://www.eclipse.org/ Eclipse]                            || &diams; || &diams; || &diams; || &diams; || &diams; || &diams; || &diams; ||
|-
|-
| [http://www.editpadpro.com/ EditPad Pro]                    ||                          ||                          ||                          || <center>&diams;</center> || <center>&diams;</center> || <center>&diams;</center> || <center>&diams;</center>
| [http://www.editpadpro.com/ EditPad Pro]                    ||                          ||                          ||                          || &diams; || &diams; || &diams; || &diams; ||
|- style="background-color: white;"
|- style="background-color: white;"
| [http://projects.gnome.org/gedit/ gedit]                    ||                          || <center>&diams;</center> ||                          ||                          || <center>&diams;</center> || <center>&diams;</center> || <center>&diams;</center>
| [http://projects.gnome.org/gedit/ gedit]                    ||                          || &diams; ||                          ||                          || &diams; || &diams; || &diams; ||
|-
|-
| [http://www.kate-editor.org/ Kate/KWrite]                    ||                          || <center>&diams;</center> ||                          ||                          || <center>&diams;</center> || <center>&diams;</center> || <center>&diams;</center>
| [http://www.kate-editor.org/ Kate/KWrite]                    ||                          || &diams; ||                          ||                          || &diams; || &diams; || &diams; ||
|- style="background-color: white;"
|- style="background-color: white;"
| [http://www.activestate.com/komodo_edit/ Komodo Edit]        ||                          ||                          || <center>&diams;</center> ||                          || <center>&diams;</center> || <center>&diams;</center> || <center>&diams;</center>
| [http://www.activestate.com/komodo_edit/ Komodo Edit]        ||                          ||                          || &diams; ||                          || &diams; || &diams; || &diams; ||
|-
|-
| [http://www.microsoft.com/windows/ Notepad]                  ||                          ||                          ||                          || <center>&diams;</center> ||                          || <center>&diams;</center> ||
| [http://www.microsoft.com/windows/ Notepad]                  ||                          ||                          ||                          || &diams; ||                          || &diams; || ||
|- style="background-color: white;"
|- style="background-color: white;"
| [http://www.notepad2.com Notepad2]                          ||                          ||                          ||                          || <center>&diams;</center> || <center>&diams;</center> || <center>&diams;</center> || <center>&diams;</center>
| [http://www.notepad2.com Notepad2]                          ||                          ||                          ||                          || &diams; || &diams; || &diams; || &diams; ||
|-
|-
| [http://notepad-plus.sourceforge.net/uk/site.htm Notepad++]  ||                          ||                          ||                          || <center>&diams;</center> || <center>&diams;</center> || <center>&diams;</center> || <center>&diams;</center>
| [http://notepad-plus.sourceforge.net/uk/site.htm Notepad++]  ||                          ||                          ||                          || &diams; || &diams; || &diams; || &diams; ||
|- style="background-color: white;"
|- style="background-color: white;"
| [http://portablegvim.sourceforge.net/ Portable GVim]        ||                          ||                          ||                          || <center>&diams;</center> || <center>&diams;</center> || <center>&diams;</center> || <center>&diams;</center>
| [http://portablegvim.sourceforge.net/ Portable GVim]        ||                          ||                          ||                          || &diams; || &diams; || &diams; || &diams; ||
|-
|-
| [http://www.pspad.com/ PSPad]                                ||                          ||                          ||                          || <center>&diams;</center> || <center>&diams;</center> || <center>&diams;</center> || <center>&diams;</center>
| [http://www.pspad.com/ PSPad]                                ||                          ||                          ||                          || &diams; || &diams; || &diams; || &diams; ||
|- style="background-color: white;"
|- style="background-color: white;"
| [http://www.scintilla.org/SciTE SciTE]                      ||                          || <center>&diams;</center> ||                          || <center>&diams;</center> || <center>&diams;</center> || <center>&diams;</center> || <center>&diams;</center>
| [http://www.scintilla.org/SciTE SciTE]                      ||                          || &diams; ||                          || &diams; || &diams; || &diams; || &diams; ||
|-
|-
| [http://www.apple.com/macosx TextEdit]                      ||                          ||                          || <center>&diams;</center> ||                          ||                          || <center>&diams;</center> ||
| [http://www.apple.com/macosx TextEdit]                      ||                          ||                          || &diams; ||                          ||                          || &diams; ||
|- style="background-color: white;"
|- style="background-color: white;"
| [http://macromates.com/ TextMate]                            ||                          ||                          || <center>&diams;</center> ||                          || <center>&diams;</center> || <center>&diams;</center> || <center>&diams;</center>
| [http://macromates.com/ TextMate]                            ||                          ||                          || &diams; ||                          || &diams; || &diams; || &diams; ||
|-
|-
| [http://www.vim.org/ Vim / GVim]                      ||                          || <center>&diams;</center> || <center>&diams;</center> || <center>&diams;</center> || <center>&diams;</center> || <center>&diams;</center> || <center>&diams;</center>
| [http://www.vim.org/ Vim / GVim]                      ||                          || &diams; || &diams; || &diams; || &diams; || &diams; || &diams; ||
|}
|}



Revision as of 10:09, 2 October 2009


Greasemonkey Manual
Using Greasemonkey
Installing Scripts
Monkey Menu
Getting Help
User Script Authoring
Editing
Environment
API

User Script Flow

A user script is a plain text file with a file extension of .user.js. Typically a metadata block is included. Although this is not strictly required it is highly recommended.

Creation of a user script can be done with any plain text editor. Upon completion of a script it may be distributed via any server method available or even a specialized user script hosting site such as userscripts.org.

The tricky part of course is what happens between starting a script and when the script is finished. Manually walking through all the steps will ensure common understanding of what is going on.

Picking an Editor

Most script wrights use a familiar built in text editor such as Windows Notepad, Linux KDE Kwrite/Kate, Linux Gnome gedit, or Mac OS X TextEdit. However some may not include mono-spaced fonts, syntax highlighting and brace matching. These can be very helpful features when coding.

Common Text Editors
Title Java Linux Macintosh Windows Bracket Match Fixed Font Syntax Highlight Auto-completion
Aptana
Dreamweaver
Eclipse
EditPad Pro
gedit
Kate/KWrite
Komodo Edit
Notepad
Notepad2
Notepad++
Portable GVim
PSPad
SciTE
TextEdit
TextMate
Vim / GVim

Creating the Script

Begin with creating the text file in a favorite plain text editor. It should contain the metadata block with at least the @name, @namespace, a brief @description and any appropriate @include and @exclude rules. Once this has been completed continuation of writing the actual code may occur. However it is not yet necessary, and can be considered counterproductive for new script wrights. Now the script stub is ready to be installed into Greasemonkey.

Editing the Script

At this point Greasemonkey has already made a copy of the script installed and placed it in the scripts directory. Any future page loads which match the include and exclude rules will execute the script. Close the text editor and optionally delete the original source file.

Next is finding and editing the copy of the script that Greasemonkey is working with. This may be done directly as explained in the FAQ, or by one of two shortcuts Greasemonkey provides. The first shortcut would be the edit button in the manage dialog. Alternately a quick right-click in the monkey menu will produce the same results.

Working with the copy of the script that Greasemonkey has installed, code changes will be immediately available excluding certain changes in the metadata block mentioned here. When all changes are completed, simply save the file and reload any pages that apply.

Changing the Editor

Currently, the easiest way of changing the default editor is via the about:config page. Find the greasemonkey.editor preference. Double-click it, and type or paste in the location of the script editor to use.

Future versions of Greasemonkey are expected to have a GUI method for this purpose.

That's It!

Writing scripts for Greasemonkey is not hard. What can get difficult, however, is working with the quirks and limitations that the script runs under; Some things that work perfectly in a normal web page, copied and pasted directly to a user script suddenly fail. It's important to know how the environment the scripts run in works.