You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CONTRIBUTION.md
+4Lines changed: 4 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -22,3 +22,7 @@ Your pull requests are welcome; however, they may not be accepted for various re
22
22
* Use the checkbox **Search > Find > Search Mode: ☑ Regular Expression** to enable regular expressions in your search
23
23
24
24
4. For text that you want to indicate as user-entered (such as regular expressions or values entered into dialog box prompts), and for filenames and directories, use backticks to set the `monospaced / code` formatting.
25
+
26
+
## Cross-Links
27
+
28
+
To properly link from one page in the user-manual docs to another, use the syntax `[link name](../page/)` to link to the top level, or `[link name](../page/#anchor)` to link to an anchor (like a heading) in another document. Note that `page` does _not_ include the `.md` extension. The anchor names are the lower-case version of the section headers, with spaces replaced by hyphens. Thus, from the [Themes](content/docs/themes/) page, link to the [**Preferences > Style Configurator**](content/docs/preferences/#style-configurator) using the syntax `[**Preferences > Style Configurator**](../preferences/#style-configurator)
Copy file name to clipboardExpand all lines: content/docs/function-list.md
+34-30Lines changed: 34 additions & 30 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,14 +7,15 @@ weight: 80
7
7
Function List Panel is a zone to display all the functions (or method) found in the current file. The user can use the Function List Panel to access a function definition quickly by double clicking function item on the list. Function List can be customized to list the functions for whichever language. For customizing Function List to recognize your favorite language, please check below.
8
8
9
9
10
-
Function list contains a search engin (by using regular expression) and a panel to display the search result (function list). It is designed to be as generic as possible, and allows user to modify the way to search, or to add new parser for any programming language.
11
-
In order to make function list work for your language (if not supported), you should modify `functionList.xml`. It can be found in %APPDATA%\notepad++\ or in Notepad++ installed directory if you use zip package.
10
+
Function list contains a search engine (by using regular expression) and a panel to display the search result (function list). It is designed to be as generic as possible, and allows user to modify the way to search, or to add new parser for any programming language.
11
+
In order to make function list work for your language (if not supported), you should modify `functionList.xml`. It can be found in `%APPDATA%\notepad++\` or in the Notepad++ installed directory if you use zip package.
12
12
13
13
## How to customize function list
14
14
In parser node it contains:
15
-
- id: uniq ID for this parser
16
-
- displayName: reserved for future use.
17
-
- comment: Optional. you can make a RE in this attribute in order to identify comment zones. The identified zones will be ignored by search.
15
+
16
+
-`id`: uniq ID for this parser
17
+
-`displayName`: reserved for future use.
18
+
-`comment`: Optional. you can make a regular expression in this attribute in order to identify comment zones. The identified zones will be ignored by search.
18
19
19
20
There are 3 kinds of parsers: function parser, class parser and mix parser.
20
21
Define a function parser if the language has only functions to parse (for example C).
@@ -27,41 +28,44 @@ A mix parser contains both function and classRange nodes.
27
28
28
29
### Function parser
29
30
In function node it contains:
30
-
- mainExpr: it's the regex to get the whole string which contains all the informations you need.
31
-
- displayMode: reserved for future use.
32
-
- functionName: define a or several RE to get the function name from the result of "mainExpr" attribute of "function" node.
33
-
- nameExpr: 1..N
34
-
- expr: here you define the RE to find the function name.
35
31
36
-
- className: define a or several RE to get the class name from the result of "mainExpr".
37
-
- nameExpr: 1..N
38
-
- expr: here you define the RE to find the function name.
39
-
40
-
Both functionName and className nodes are optional.
41
-
If functionName and className are absent, then the found string by mainExpr RE will be processed as function name, and the class name won't be used.
32
+
-`mainExpr`: it's the regex to get the whole string which contains all the informations you need.
33
+
-`displayMode`: reserved for future use.
34
+
-`functionName`: define a or several regular expression to get the function name from the result of "mainExpr" attribute of "function" node.
35
+
-`nameExpr`: 1..N
36
+
- `expr`: here you define the regular expression to find the function name.
37
+
38
+
-`className`: define a or several regular expression to get the class name from the result of "mainExpr".
39
+
-`nameExpr`: 1..N
40
+
- `expr`: here you define the regular expression to find the function name.
41
+
42
+
Both `functionName` and `className` nodes are optional.
43
+
If `functionName` and `className` are absent, then the found string by `mainExpr` regular expression will be processed as function name, and the class name won't be used.
42
44
43
45
44
-
The nodes functionName and className have the same structure, and they have the same parsing behaviour. For example, in the functionName node, we got 2 nameExpr nodes:
45
-
If the function parser find the first result by mainExpr attribute, then it will use the first nameExpr to search in the first result, if found (the 2nd result), then it will use the 2nd nameExpr to search in the 2nd result. If found, then the function name is solved.
46
+
The nodes `functionName` and `className` have the same structure, and they have the same parsing behaviour. For example, in the `functionName` node, we got 2 `nameExpr` nodes:
47
+
If the function parser find the first result by `mainExpr` attribute, then it will use the first `nameExpr` to search in the first result, if found (the 2nd result), then it will use the 2nd `nameExpr` to search in the 2nd result. If found, then the function name is solved.
46
48
47
49
### Class parser
48
50
In classRange node it contains:
49
-
- mainExr: the main whole string to serach
50
-
- displayMode: reserved for future use.
51
-
- openSymbole & closeSymbole: they are optional. if defined, then the parser will determinate the zone of this class. It find first openSymbole from the first character of found string by mainExpr attribute. then it determinates the end of class by closeSymbole found. The algorithm deals with the several levels of imbrication. for example: \{\{\{\}\{\}\}\{\}\}
52
-
- className: 1 (or more) nameExpr node for determinating class name (from the result of mainExpr searching).
53
-
- function: search in the class zone by using mainExpr attribute and the functionName nodes.
51
+
52
+
-`mainExr`: the main whole string to serach
53
+
-`displayMode`: reserved for future use.
54
+
-`openSymbole` & `closeSymbole`: they are optional. if defined, then the parser will determinate the zone of this class. It find first `openSymbole` from the first character of found string by mainExpr attribute. then it determinates the end of class by `closeSymbole` found. The algorithm deals with the several levels of imbrication. for example: `\{\{\{\}\{\}\}\{\}\}`
55
+
-`className`: 1 (or more) `nameExpr` node for determinating class name (from the result of `mainExpr` searching).
56
+
-`function`: search in the class zone by using `mainExpr` attribute and the `functionName` nodes.
54
57
55
58
### Mix parser
56
-
Mix Parser contains Class parser (classRange node) and Function parser (function node).
59
+
Mix Parser contains Class parser (`classRange` node) and Function parser (`function` node).
57
60
Class parser will be applied firstly to find class zones, then function parser will be applied on non-class zones.
58
61
59
62
### Link to Language
60
63
Once you finish to defined your parser, you can associate it with Notepad++ internal language id (or with file extension), in order to make it works with the language you want. All you need to do is add association node(s) into associationMap node.
61
64
62
-
In associationMap, it contains:
63
-
- association: 1 or several nodes to make associations between defined parsers and languages.
64
-
- langID: Notepad++ internal language ID.
65
-
- userDefinedLangName: User Defined Language Name. It makes association between User Defined Language and the parser. If langID is present, this attribute will be ignored.
66
-
- ext: File name extesion (should contain '.'). If langID or userDefinedLangName is present, this attribute will be ignored.
67
-
- id: Parser ID.
65
+
In `associationMap`, it contains:
66
+
67
+
-`association`: 1 or several nodes to make associations between defined parsers and languages.
68
+
-`langID`: Notepad++ internal language ID.
69
+
-`userDefinedLangName`: User Defined Language Name. It makes association between User Defined Language and the parser. If langID is present, this attribute will be ignored.
70
+
-`ext`: File name extesion (should contain `.`). If `langID` or `userDefinedLangName` is present, this attribute will be ignored.
Note that you may need to use "%ProgramFiles%\Notepad++\" to substitute for "%ProgramFiles(x86)%\Notepad++\" if you have Notepad++ 64-bit installed, or use other path if your Notepad++ is installed in a non-default location.
15
+
Note that you may need to use `%ProgramFiles%\Notepad++\` to substitute for `%ProgramFiles(x86)%\Notepad++\` if you have Notepad++ 64-bit installed, or use other path if your Notepad++ is installed in a non-default location.
16
16
17
17
18
18
Use the the following comment to undo the replacement:
- To switch between first and last tab, use <kbd>CTRL</kbd> + <kbd>SHIFT</kbd> + ```MOUSEWHEEL``` on tabs. ```MOUSEWHEEL``` up will take to first tab while down will take to last tab.
- To switch and activate next/previous tab, use <kbd>CTRL</kbd> + ```MOUSEWHEEL``` on tabs. ```MOUSEWHEEL``` up will take to previous tab while down will take next tab.
- To move tab from one position to other position, use <kbd>SHIFT</kbd> + ```MOUSEWHEEL``` on tabs. ```MOUSEWHEEL``` up will move currently selected tab to previous position while down will move to next position.
Copy file name to clipboardExpand all lines: content/docs/themes.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,7 @@ weight: 110
4
4
---
5
5
6
6
7
-
Themes are pre-defined sets of formatting rules, which often try to use a consistent color scheme between languages. You may choose your theme using the [**Preferences > Style Configurator** dialog](./preferences/#style-configurator).
7
+
Themes are pre-defined sets of formatting rules, which often try to use a consistent color scheme between languages. You may choose your theme using the [**Preferences > Style Configurator** dialog](../preferences/#style-configurator).
8
8
9
9
Notepad++ comes packaged with a default theme and a number of other themes to start with. You may customize any of those themes using the Style Configurator dialog, or by editing the underlying XML files.
0 commit comments