Difference between revisions of "Function lists"

From EditPlus Wiki
Jump to: navigation, search
(Deleting Spam)
m
 
(11 intermediate revisions by 10 users not shown)
Line 1: Line 1:
==CSS==
+
==JavaScript==
Since CSS doesn't have a "function" keyword, we need to find a way to identify lines containing a selector. I've chosen to use the most common method; selectors start at the beginning of the line with an alphanumeric character, all other lines (properties, comments) must be indented (or generally start with a non-alphanumeric character). Example:
+
  
/*
+
Both function pattern regular expressions support partial display using the first tagged expression in the Function Pattern dialog.
  Example of a comment
+
*/
+
td.test
+
{
+
  background-color:  #ffffff;
+
  color:              #000000;
+
  padding:            2px;
+
}
+
  
In EditPlus:
+
^[ \t]*function[ \t](.*\(.*\)).*$
 +
^[ \t]*([^:=]+[:=] function ?\(.*\)).*
  
#Go to Tools > Preferences
+
These expressions will find functions of the following forms in your file:
#Find the Settings & syntax option under the Files section
+
#Select CSS from the File Types list
+
#In the Function Pattern box, enter:  
+
^[a-zA-Z0-9]
+
  
If you are unfamiliar with [[Regular Expressions]]: the ^ matches the beginning of the line, so that's where our search will start. After that, match a single character in the range of a-z, it's capital equivelant or 0-9, also known as alphanumeric. Since we indicated this character must be directly after the beginning of the line, any line with a leading space or tab will be ignored, as will the {} lines.
+
function foobarspaz(arg1, arg2) {}
 
+
  foobarspaz: function(arg1, arg2) {}
If you open up the Function List again, you'll get a list of all selectors; just be careful on how you format the CSS.
+
  foobarspaz = function(arg1, arg2) {}
 
+
You can also develop more advanced, more general, stricter patterns like
+
  ^([@:\.#]?[A-z][A-z0-9_-]*)([ \t]*[,+> ][ \t]*([:\.#]?[A-z][A-z0-9_-]*))*[ \t]*{?
+
This particular pattern still lacks support for some complexer selectors, e.g. 'a[hreflang|="en"]', 'html:lang("en")' or multiline ones, and chokes on comments.
+
   
+
 
+
==HTML==
+
Of course HTML does not have functions, but especially in longer documents it is convenient to be able to jump to headings. You can either regex-search for "<h[1-6]" and select ''Set Marker'' or you use the function list (Ctrl-F11) with a pattern like this in Settings & Syntax > Files > HTML > Function Pattern
+
 
+
<(h[1-6]|caption)
+
  
 
==PHP5==
 
==PHP5==

Latest revision as of 21:24, 25 March 2010

JavaScript

Both function pattern regular expressions support partial display using the first tagged expression in the Function Pattern dialog.

^[ \t]*function[ \t](.*\(.*\)).*$
^[ \t]*([^:=]+[:=] function ?\(.*\)).*

These expressions will find functions of the following forms in your file:

function foobarspaz(arg1, arg2) {}
foobarspaz: function(arg1, arg2) {}
foobarspaz = function(arg1, arg2) {}

PHP5

When using classes in PHP5 the function keyword can be preceded by "public", "private" or "protected". The following updated regex takes account of this change from PHP4. If you don't know why you might need this, then you probably don't.

^[ \t]*(public[ \t]|protected[ \t]|private[ \t]|)[ \t]*function[ \t].*\([^;]*$

To also show classes in the function list use the following:

^[ \t]*((public[ \t]|protected[ \t]|private[ \t]|)[ \t]*function[ \t].*\()|(class[ \t].*\{)[^;]*$