diff --git a/docs/assets/images/options.jpg b/docs/assets/images/options.jpg index 608e98c3..52b96136 100644 Binary files a/docs/assets/images/options.jpg and b/docs/assets/images/options.jpg differ diff --git a/docs/dev/index.md b/docs/dev/index.md index 3ad346f7..130fb95f 100644 --- a/docs/dev/index.md +++ b/docs/dev/index.md @@ -69,7 +69,7 @@ This is a GUI test, so do not move your mouse or type on your keyboard or let yo completed. Total test run time is about 12 minutes. The tests all pass on Windows 10, but currently some tests fail on Windows 11, there seems to be some breaking changes -in the Windows Automation layer that XML notepad tests are using. This is being investigated. +in the Windows Automation layer that XML Notepad tests are using. This is being investigated. Note: [bug 10244](https://github.com/dotnet/winforms/issues/10244) is still open in in .net 4.8 System.Windows.Automation of menu items that blocks the tests, so checkout the branch `clovett/net472` to run the unit @@ -142,4 +142,4 @@ See [XML Notepad Design ](design.md) for more detailed information about how thi Feedback and suggestions are welcome, just use the [GitHub issues list](https://github.com/microsoft/XmlNotepad/issues). Pull requests are also welcome, in fact, a number of good pull -requests have already been merged. Thanks to all who are helping to make XML notepad a great tool! +requests have already been merged. Thanks to all who are helping to make XML Notepad a great tool! diff --git a/docs/help/analytics.md b/docs/help/analytics.md index fb1f9ba0..ef28d511 100644 --- a/docs/help/analytics.md +++ b/docs/help/analytics.md @@ -1,16 +1,16 @@ ## Analytics -In order to understand which features are important XML Notepad records anonymous usage like: +To understand which features are important, XML Notepad records anonymous usage data, like: -1. how many times the app is used -2. how many times each feature is used (options, xslt, search, etc) +1. The number of times the app is used. +2. The number of times each feature is used (options, xslt, search, etc) -The data is collected using Google Analytics and shared only with members of the XML Notepad development team. The data -is used to prioritize future work to improve the features that are most popular. +The data is collected using Google Analytics and shared solely with members of the XML Notepad development team. +It's used to prioritize future enhancements. -As a teaser, here is a map of countries where XML Notepad was used in July 2022. That's super cool to see a healthy -community of users and this motivates the team to keep XML notepad in tip-top shape. +As a sneak peek, here is a map illustrating the countries where XML Notepad was used in July 2022. This vibrant user +community is a strong motivator for the team to continually refine XML Notepad. ![map](../assets/images/map.png) @@ -30,19 +30,19 @@ The first time you install XML Notepad on your computer you will be prompted wit ![popup](../assets/images/analytics.png) -Thanks to those who have allowed analytics to be collected, it really helps to understand usage patterns and prioritize -what to improve. But, if you really need to click `No` then the choice will be written to the XML Notepad settings file -and it will not be prompted again. Analytics can be enabled or disabled any time using the `Allow analytics` option in -the [Options dialog](options.md). +We appreciate those who allow analytics to be collected; significantly aids in understanding usage patterns and +prioritizing improvements. However, if you prefer not to participate, click `No` then your preference will be written to +the XML Notepad settings file, and the prompt will not reappear. You can enable or disable analytics at any time using the +`Allow analytics` option in the [Options dialog](options.md). -If you want to disable analytics before installing XML Notepad (perhaps in an enterprise wide distribution) then you can -set this environment system wide on the end user's machine: +For enterprise-wide distributions or pre-installation customization, you can set the following environment variable +system-wide on the end user's machine: ``` set XML_NOTEPAD_DISABLE_ANALYTICS=1 ``` -You can also disable the Analytics UI option from appearing in the [Options dialog](options.md) by setting the +Additionally, you can disable the Analytics UI option from appearing in the [Options dialog](options.md) by setting the `AnalyticsClientId` to disabled in the default [XmlNotepad.settings](settings.md) file as follows: ```xml @@ -51,4 +51,4 @@ You can also disable the Analytics UI option from appearing in the [Options dial ``` -This ensures the user cannot enable analytics after starting XML notepad. +This ensures that users cannot enable analytics after starting XML Notepad. diff --git a/docs/help/clipboard.md b/docs/help/clipboard.md index 1e93cc8f..58d0b782 100644 --- a/docs/help/clipboard.md +++ b/docs/help/clipboard.md @@ -6,9 +6,9 @@ Cut/Copy/Paste and [Drag/drop](dragdrop.md) are based on the same XML clipboard out of XML Notepad and into any editor that supports a text clipboard format and its the same as doing a Cut & Paste operation. -The clipboard format is the XML serialization of the selected node plus any namespace declarations needed to make that -fragment well formed. +The clipboard format is the XML serialization of the selected node, along with any necessary any namespace declarations +needed to ensure the fragment well formed. -When XML is pasted from the clipboard (or dropped) onto the [tree view](overview.md) the namespace declarations are -matched with what is in the target document already and normalized accordingly. This ensures your document doesn't -sprout lots of redundant namespace declarations as a side effect of these editing operations. \ No newline at end of file +When XML is pasted from the clipboard (or dropped) onto the [tree view](overview.md), the namespace declarations are +matched those already present in the target document and normalized accordingly. This prevents your document from +accumulating redundant namespace declarations as a side effect of these editing operations. \ No newline at end of file diff --git a/docs/help/customeditors.md b/docs/help/customeditors.md index 49b888c4..634ee4a1 100644 --- a/docs/help/customeditors.md +++ b/docs/help/customeditors.md @@ -1,45 +1,46 @@ ## Custom Editors -If an XML schema is provided for validation then that schema can also define custom editors on specific +If an XML schema is provided for validation, it can also define custom editors on specific `` tags. -A default custom editor is provided for the simpleTypes xsd:date xsd:dateTime and xsd:time. Any element or attribute of -this type will be edited using the WinForms DateTimePicker, configured for the current system locale, for example: +A default custom editor is provided for the simpleTypes `xsd:date`, `xsd:dateTime`, and `xsd:time`. Any element or +attribute of this type will be edited using the WinForms DateTimePicker, configured for the current system locale, for +example: ![datetime](../assets/images/datetime.jpg) ## Custom Builders -Custom Builders provide a button that appears at the top of the intellisense list, when the user clicks on that button -it invokes the builder to edit the value, which usually pops up a modal dialog. +Custom Builders provide a button that appears at the top of the intellisense list. When the user clicks on that button, +it invokes the builder to edit the value, typically triggering a modal dialog. A custom builder for editing file names is provided and is automatically associated with the xsd:anyURI data type. You can associate this builder manually using the `vs:builder="XmlNotepad.UriBuilder">` attribute. When you edit an element -of this type a button will appear titled "Browse..." at the top of the intellisense list and when you click on this -button the WinForms OpenFileDialog will appear. +of this type, a button titled "Browse..." will appear at the top of the intellisense list, and clicking it will open +the WinForms OpenFileDialog. -A custom builder for editing colors is provided. But since there is no standard color type defined in XSD, you must -specify the vs:builder attribute as shown in the following example: +A custom builder for editing colors is also provided. However, since there is no standard color type defined in XSD, you must +specify the `vs:builder` attribute as shown in the following example: ```xml ``` -Where the "vs" prefix is bound to the following namespace: +Where the `vs` prefix is bound to the following namespace: `xmlns:vs="http://schemas.microsoft.com/Visual-Studio-Intellisense"`. -If you build your own custom editors you will also need to specify the `vs:assembly="FontBuilder, Version=1.0.0.0, +If you build your own custom editors, you will also need to specify the `vs:assembly="FontBuilder, Version=1.0.0.0, Culture=neutral, PublicKeyToken=007b972e7cff2ded, processorArchitecture=MSIL"` attribute to point to your assembly. XML Notepad will then load your assembly so it can find the specified types. ![Colors](../assets/images/colors.jpg) -When you edit an element of this type a button will appear titled "Color Picker" at the top of the intellisense list and -when you click on this button the WinForms ColorDialog will appear. The resulting color will then be serialized back to +When you edit an element of this type a button titled "Color Picker" will appear at the top of the intellisense list and +and clicking on it will open the WinForms ColorDialog. The resulting color will then be serialized back to the XML string using the `ColorConverter`. -You can implement your own builders by implementing `IXmlBuilder `and specifying your full class name in the +You can implement your own builders by implementing `IXmlBuilder` and specifying your full class name in the `vs:builder` attribute. See also [Schemas Dialog](schemas.md). \ No newline at end of file diff --git a/docs/help/dragdrop.md b/docs/help/dragdrop.md index 3e455fbf..c75e3c48 100644 --- a/docs/help/dragdrop.md +++ b/docs/help/dragdrop.md @@ -1,25 +1,25 @@ ## Drag/Drop Support -You can drag and drop nodes from the tree view to move them around inside the document or across documents using +You can drag and drop nodes from the tree view to rearrange them within the document or more them across documents using multiple instances of XML Notepad. (Note: You can easily create a new instance of XML Notepad by selecting the -Window/New Window menu item). You can also drag an XML file from Windows Explorer onto XML Notepad as a quick way to -open that file. +Window/New Window menu item). Additionally, you can drag an XML file from Windows Explorer onto XML Notepad as a quick +way to open that file. -When you Drag/Drop nodes across programs, it uses the same text format as [Cut/Copy/Paste](clipboard.md). +When you drag and drop nodes across programs, it uses the same text format as [Cut/Copy/Paste](clipboard.md). -When dragging the selected element a shadow node will appear in the tree that moves with the cursor showing you where -the node will be moved to. In the example below, the "Street" element is being dragged to a new location after the +As you drag the selected element, a shadow node will appear in the tree, moving with the cursor to indicate where +the node will be placed. In the example below, the "Street" element is being dragged to a new location after the "First" element and before the "Middle" element: ![DragDrop](../assets/images/dragdrop.jpg) -When you hover the mouse over a collapsed node it is automatically expanded just in case you are trying to drop the node -inside that collapsed container and conversely, when you hover over an expanded node it is automatically collapsed so -that you can easily find nodes above or below that container. +When hovering the mouse over a collapsed node, automatically expands to facilitate dropping the node inside that +collapsed container. Conversely, when hovering over an expanded node, it automatically collapses, aiding in finding +nodes above or below that container. -Dragging is a move operation by default, even across XML Notepad instances, which means if you drag a node from one XML -Notepad instance to another it will be removed from the first instance. If you want to perform a copy operation, hold -down the CONTROL key. +By default, dragging is a move operation, even across XML Notepad instances, meaning if you drag a node from one XML +Notepad instance to another, it will be removed from the first instance. If you wish to perform a copy operation +instead, hold down the CONTROL key. -See [Keyboard](keyboard.md) for more information. \ No newline at end of file +See [Keyboard](keyboard.md) for more information. diff --git a/docs/help/dynamic.md b/docs/help/dynamic.md index 5af43b12..fae6c6d6 100644 --- a/docs/help/dynamic.md +++ b/docs/help/dynamic.md @@ -3,7 +3,7 @@ When you have an associated [XSD schema](schemas.md), the `xsd:documentation` associated with the current node is displayed in a tooltip popup and in the Dynamic Help Tab. -For example, the `Employee.xsd` schema contains the following annotation on the defintion of the Employee Id attribute: +For example, the `Employee.xsd` schema contains the following annotation on the definition of the Employee Id attribute: ```xml @@ -17,7 +17,7 @@ For example, the `Employee.xsd` schema contains the following annotation on the ``` -Now if you open Employee.xml and select the Employee Id attribute you will see this annotation listed in the Dynamic +Now, if you open Employee.xml and select the Employee Id attribute you will see this annotation listed in the Dynamic Help tab as follows: ![annotations](../assets/images/annotations.png) diff --git a/docs/help/fileassociation.md b/docs/help/fileassociation.md index d45095bc..d9ede0cd 100644 --- a/docs/help/fileassociation.md +++ b/docs/help/fileassociation.md @@ -1,36 +1,38 @@ ## XML Notepad File Association -See the following video that shows how to associate XML Notepad with various .xml file types: +Watch the following video tutorial to learn how to associate XML Notepad with various .xml file types: -[Youtube Video](https://youtu.be/n-6sSUSlN34) +[YouTube Video](https://youtu.be/n-6sSUSlN34) -The general approach that works is to do the following: +Here's a step-by-step guide: -1. Open the XML Notepad that you installed already. -2. Select Help/Open Sample... and select "Hamlet.xml" -3. You will see a long file path in the address bar like this: +1. Open XML Notepad, which you have already installed. +2. Navigate to Help > Open Sample... and select "Hamlet.xml". +3. Note the long file path displayed in the address bar, such as: -> C:\Program Files\WindowsApps\43906ChrisLovett.XmlNotepad_2.9.0.5_neutral__hndwmj480pefj\Application\Samples\Hamlet.xml +``` +C:\Program Files\WindowsApps\43906ChrisLovett.XmlNotepad_2.9.0.5_neutral__hndwmj480pefj\Application\Samples\Hamlet.xml +``` If you open this path in Windows Explorer you can locate XmlNotepad.exe here: - -> C:\Program Files\WindowsApps\43906ChrisLovett.XmlNotepad_2.9.0.5_neutral__hndwmj480pefj\Application\XmlNotepad.exe - +``` +C:\Program Files\WindowsApps\43906ChrisLovett.XmlNotepad_2.9.0.5_neutral__hndwmj480pefj\Application\XmlNotepad.exe +``` Copy this path to the clipboard. -Now use the start menu to find the "Default apps" settings dialog. - -Enter the file type at the top (e.g. type in ".xsd" or ".xslt"), then click the button labelled `+ Choose a default`. - -Scroll to the bottom of this dialog and click `Choose an app on your PC` - -And paste in the path you coped to the clipboard earlier. Click `Open` then click `Set Default`. +Now, follow these steps: +- Open the "Default apps" settings dialog using the start menu. +- Enter the file type at the top (e.g., type in ".xsd" or ".xslt"). +- Click the button labeled `+ Choose a default`. +- Scroll to the bottom of this dialog and click `Choose an app on your PC`. +- Paste in the path you copied to the clipboard earlier. +- Click `Open`, then click `Set Default`. -As soon as you do this the icon on the file type you associated should change in Windows Explorer showing the XML -Notepad icon and when you double click the file it will automatically open XML Notepad. +As soon as you do this, the icon on the file type you associated should change in Windows Explorer showing the XML +Notepad icon, and when you double click the file, it will automatically open XML Notepad. Note that when you have done one extension, all the other extensions are much easier because XML Notepad will now show up in the list of possible apps to choose. -The path you have registered here is version specific so you may have to repeat this process when you install new -versions of XML Notepad. \ No newline at end of file +Keep in mind that the path you have registered here is version specific, so you may have to repeat this process when you +install new versions of XML Notepad. diff --git a/docs/help/find.md b/docs/help/find.md index 91459bcf..33f8d1df 100644 --- a/docs/help/find.md +++ b/docs/help/find.md @@ -1,42 +1,42 @@ ## Find/Replace -The "Find..." item under the [Edit Menu](menus.md) (CTRL+F) brings up the following dialog: +Selecting the "Find..." item under the [Edit Menu](menus.md) (CTRL+F) opens the following dialog: ![Find](../assets/images/find.png) -The "Replace..." item under the [Edit Menu](menus.md) (CTRL+H) changes this dialog to show the extra replace fields: +Choosing "Replace..." item under the [Edit Menu](menus.md) (CTRL+H) modifies this dialog to display additional replace +fields: ![Find](../assets/images/replace.png) -By default this dialog will allow you to search "Everything" in the current XML document with a given find string. You -can limit the search in the following ways: +By default this dialog will allow you to search "Everything" in the current XML document with a specified find string. +You can refine the search using the following options: -**Match case**: This will only find nodes that contain the exact search string in the same case. +**Match case**: Only find nodes that contain the exact search string in the same case. -**Match whole word**: this will only find nodes that contain the search string as a complete word, i.e., not a +**Match whole word**: Only find nodes that contain the search string as a complete word, i.e., not a substring. -**Use Regular Expressions**: this will treat the find string as a regular expression. See .NET regular expressions for +**Use Regular Expressions**: Treats the find string as a regular expression. See .NET regular expressions for help with the regular expression language. -**Use XPath**: this option allows you to find nodes using an XPath expression. When you choose this option an extra -table appears where you can edit the namespace prefix mappings used in the XPath expression. See [XPath +**Use XPath**: Allows you to find nodes using an XPath expression. Choosing this option reveals an extra table +where you can edit the namespace prefix mappings used in the XPath expression. See [XPath Syntax](https://docs.microsoft.com/en-us/previous-versions/dotnet/netframework-4.0/ms256471(v=vs.100)?redirectedfrom=MSDN) for help with the XPath expression language. ![Find](../assets/images/findxpath.png) -**Search Filter**: this option allows you to limit the search to just "Names" which means only search node names, or +**Search Filter**: Limits the search to just "Names" which means only search node names, or "Text" which means only search node values, or "Comments" which means only search comment nodes. -**Direction**: this allows you to search backwards from the current location in the document ("Up") or forwards -("Down"). +**Direction**: Determines the search direction: "Up" (backwards from the current location) or "Down" (forwards). -**Find Next**: this button finds the next matching node in the specified direction after the currently selected node and -it highlights the matching substring within the node name or value. +**Find Next**: Finds the next matching node in the specified direction after the currently selected node and +highlights the matching substring within the node name or value. -**Replace**: this button finds the next matching node in the specified direction after the currently selected node and -if it finds something it replaces it with the replace text. +**Replace**: Finds the next matching node in the specified direction after the currently selected node and +replaces it with the specified replace text. -**Replace All**: this button replaces all matching text with the replace text. \ No newline at end of file +**Replace All**: Replaces all matching text with the specified replace text. \ No newline at end of file diff --git a/docs/help/intellisense.md b/docs/help/intellisense.md index 3ac77b31..49c9cf08 100644 --- a/docs/help/intellisense.md +++ b/docs/help/intellisense.md @@ -1,23 +1,23 @@ ## Intellisense -If an XML schema is provided for validation then this same schema is also used to provide intellisense. For example, if -your schema defines an `` between the elements "fruit", "vegetable" and "berry", then when you insert a new -node at this location you will be prompted with those choices as shown below: +If an XML schema is provided for validation, the same schema is also used to provide intellisense. For example, if +your schema defines an `` between the elements "fruit", "vegetable", and "berry", then when you insert a new +node at this location, you will be prompted with those choices as shown below: -![DragDrop](../assets/images/intellisense.jpg) +![Intellisense](../assets/images/intellisense.jpg) Similarly, if your schema defines a simpleType with a list of `` facets, then this list of valid values is prompted when you edit the node value as follows: -![DragDrop](../assets/images/intellisense2.jpg) +![Intellisense](../assets/images/intellisense2.jpg) -Then as you type the item matching the letters you have typed so far will be automatically selected in the drop down -list and when you type ENTER the selected item is copied to your edit field and the intellisense selection is finished -which saves you from having to type the whole string in manually. This can result in much more efficient editing of XML +As you type, the item matching the letters you have typed so far will be automatically selected in the drop-down +list. When you press ENTER, the selected item is copied to your edit field, and the intellisense selection is completed, +saving you from having to type the whole string in manually. This can result in much more efficient editing of XML documents. -XML Notepad also supports special [custom editors](customeditors.md) for well known data types like date, time and +XML Notepad also supports special [custom editors](customeditors.md) for well-known data types like date, time and color. -See also [Schemas Dialog](schemas.md) \ No newline at end of file +See also [Schemas Dialog](schemas.md). diff --git a/docs/help/keyboard.md b/docs/help/keyboard.md index 2fb7d9d3..38ceb34a 100644 --- a/docs/help/keyboard.md +++ b/docs/help/keyboard.md @@ -10,19 +10,19 @@ Handy Keyboard short cuts include: | Key | Description | | ------------- |-------------| -| TAB | navigates from the tree view to the corresponding node value then to the next node in the tree view and so on. SHIFT-TAB does the reverse. | -| Arrow Keys | Up/Down/Left/Right do the usual things in the tree view. | -| CTRL+SHIFT+Arrow | Nudge the selected node up, down, left or right. | -| HOME/END | Navigate to first and last visible nodes in the tree view. | +| TAB | Navigates from the tree view to the corresponding node value then to the next node in the tree view and so on. SHIFT-TAB does the reverse. | +| Arrow Keys | Up/Down/Left/Right navigate the tree view. | +| CTRL+SHIFT+Arrow | Nudges the selected node up, down, left or right. | +| HOME/END | Navigate to the first and last visible nodes in the tree view. | | PAGE UP/DOWN | Scrolls the tree view up or down one page.| -| INSERT | Insert another node of the same type.| -| CTRL+INSERT | Insert a child element.| -| ALT+INSERT | Insert a child attribute.| -| ENTER | Enter and exit edit mode on a node name and/or node value. You can also enter edit mode by just typing in some non-navigational keystrokes and what you type will replace what was selected.| -| CTRL+D | Duplicate the current node, so you can quickly create similar fragments of XML and then just edit the values. | +| INSERT | Inserts another node of the same type.| +| CTRL+INSERT | Inserts a child element.| +| ALT+INSERT | Inserts a child attribute.| +| ENTER | Enters and exits edit mode on a node name and/or node value. You can also enter edit mode by just typing in some non-navigational keystrokes and what you type will replace what was selected.| +| CTRL+D | Duplicates the current node, so you can quickly create similar fragments of XML and then just edit the values. | | CTRL+F | Brings up the [Find dialog](find.md). | | CTRL+H | Brings up the [Find/Replace dialog](find.md). | -| CTRL+I | Incremental search - as you type a sequence of letters, this search mode will match the next node that starts with that sequence. The more letters you type the more precise the match becomes. In a large document this is a convenient way to navigate around. | +| CTRL+I | Incremental search - as you type a sequence of letters, this search mode will match the next node that starts with that sequence. The more letters you type the more precise the match becomes. In a large document this is a convenient way to navigate around. | | CTRL+C, CTRL+V, CTRL+X | Cut/Copy/Paste - see [Clipboard support](clipboard.md). | | F2 | Edit the current node name or value. | | F3 | After dismissing the find dialog, this keystroke repeats the last Find operation. SHIFT+F3 finds in the reverse direction. | @@ -32,4 +32,4 @@ Handy Keyboard short cuts include: | CTRL+DRAG-DROP | Normally [drag/drop](dragdrop.md) is a move operation. If you hold down the Control key then it becomes a Copy operation. | | Multiply | (* on number pad) Expand all nodes under the selected node. | | Add (+ on number pad) | Expand the selected node. | -| Subtract (- on number pad) | Collapse the selected node. | \ No newline at end of file +| Subtract (- on number pad) | Collapse the selected node. | diff --git a/docs/help/menus.md b/docs/help/menus.md index 53a1a195..684e50b7 100644 --- a/docs/help/menus.md +++ b/docs/help/menus.md @@ -5,61 +5,61 @@ XML Notepad provides the following menu commands. ### File The file menu contains the following commands: -- **New** Start a new XML document. -- **Open** Open an XML document for editing. Can also open .csv, .json and .htm files converting them to XML. -- **Reload** Discard any edits you've made and reload the file as it exists on disk. -- **Open Xml Settings...** Opens the current XmlNotepad.settings file in Xml Notepad. -- **Open XmlDiff Styles...** Opens the XmlDiffStyles.css file in your text editor so you can change the appearence of +- **New:** Start a new XML document. +- **Open:** Open an XML document for editing. Can also open .csv, .json and .htm files converting them to XML. +- **Reload:** Discard any edits you've made and reload the file as it exists on disk. +- **Open Xml Settings...:** Opens the current XmlNotepad.settings file in Xml Notepad. +- **Open XmlDiff Styles...:** Opens the XmlDiffStyles.css file in your text editor so you can change the appearence of the XmlDiff output window. Delete the file to reset back to the original styles. The files lives in %LOCALAPPDATA%\Microsoft\Xml Notepad\XmlDiffStyles.css. -- **Save** Save any edits you've made to the file disk. -- **Save As** Save the current document to a different file name on disk. -- **Export Errors** Save the contents of the Error List in an XML format. -- **Recent Files** This menu provides quick access to the last 10 XML documents you've edited. -- **Exit** Closes XML Notepad. +- **Save:** Save any edits you've made to the file disk. +- **Save As:** Save the current document to a different file name on disk. +- **Export Errors:** Save the contents of the Error List in an XML format. +- **Recent Files:** This menu provides quick access to the last 10 XML documents you've edited. +- **Exit:** Closes XML Notepad. ### Edit The edit menu contains the following commands: -- **Undo** Undo the previous edit operation. -- **Redo** Reverses the last undo operation. -- **Cut** Copy the selected node to the clipboard (and its children) and remove that node from the tree. See [Clipboard +- **Undo:** Undo the previous edit operation. +- **Redo:** Reverses the last undo operation. +- **Cut:** Copy the selected node to the clipboard (and its children) and remove that node from the tree. See [Clipboard support](clipboard.md). -- **Copy** Copy the selected node to the clipboard (and its children). -- **Copy XPath** Copy the XPath expression that locates the selected node. -- **Paste** Parse the XML in the clipboard and create new nodes in the tree under the selected node. -- **Delete** Delete the selected node. -- **Insert** Insert a new node of the same type (element, attribute, processing instruction, comment, etc) as the +- **Copy:** Copy the selected node to the clipboard (and its children). +- **Copy XPath:** Copy the XPath expression that locates the selected node. +- **Paste:** Parse the XML in the clipboard and create new nodes in the tree under the selected node. +- **Delete:** Delete the selected node. +- **Insert:** Insert a new node of the same type (element, attribute, processing instruction, comment, etc) as the currently selected node. This makes it easy to build a list of nodes that have the same type. -- **Rename** Enter edit mode on the current element or attribute so you can rename it (or type Enter key) -- **Duplicate** Clone the selected node (and its children) and insert the clone as the next sibling. -- **Change To** Changes the selected node to the specified node type. -- **Goto Definition** Open the selected XInclude or open the XML Schema that defines the selected node in a new instance +- **Rename:** Enter edit mode on the current element or attribute so you can rename it (or type Enter key) +- **Duplicate:** Clone the selected node (and its children) and insert the clone as the next sibling. +- **Change To:** Changes the selected node to the specified node type. +- **Goto Definition:** Open the selected XInclude or open the XML Schema that defines the selected node in a new instance of XML Notepad. -- **Expand XIncludes** Expand all XInlcude elements with the contents of the XML documents they point to. -- **Nudge** Moves the selected node: - - **Up** Before the previous sibling, or before the parent if there are no previous siblings. - - **Down** After the next sibling, or after the parent if there is no next sibling. - - **Left** Before the parent if this is the first child, otherwise after the parent. - - **Right** so it becomes the last child of the previous sibling. -- **Find...** Brings up the [find dialog](find.md). -- **Replace...** Brings up the [replace dialog](find.md). -- **Incremental Search...** Allows you to instantly find what you type. +- **Expand XIncludes:** Expand all XInclude elements with the contents of the XML documents they point to. +- **Nudge:** Moves the selected node: + - **Up:** Before the previous sibling, or before the parent if there are no previous siblings. + - **Down:** After the next sibling, or after the parent if there is no next sibling. + - **Left:** Before the parent if this is the first child, otherwise after the parent. + - **Right:** so it becomes the last child of the previous sibling. +- **Find...:** Brings up the [find dialog](find.md). +- **Replace...:** Brings up the [replace dialog](find.md). +- **Incremental Search...:** Allows you to instantly find what you type. ### View -- **Expand All** Expand all collapsed nodes in the entire tree. See "Expand" item on the context menu if you just want +- **Expand All:** Expand all collapsed nodes in the entire tree. See "Expand" item on the context menu if you just want to expand the selected node. -- **Collapse all** Collapse all expanded nodes in the entire tree (except the root node). See "Collapse" item on the +- **Collapse all:** Collapse all expanded nodes in the entire tree (except the root node). See "Collapse" item on the context menu if you just want to collapse the selected node. -- **Status Bar** Toggle the visibility of the status bar. -- **Source** Show the current XML document in text form using "Notepad". -- **Options...** Display the [Options Dialog](options.md). -- **Schemas...** Display the [Schemas Dialog](schemas.md). -- **Statistics...** Opens a command prompt with the results of running XmlStats.exe on the current file. The +- **Status Bar:** Toggle the visibility of the status bar. +- **Source:** Show the current XML document in text form using "Notepad". +- **Options...:** Display the [Options Dialog](options.md). +- **Schemas...:** Display the [Schemas Dialog](schemas.md). +- **Statistics...:** Opens a command prompt with the results of running XmlStats.exe on the current file. The XmlStats.exe program is in the current working directory so you can play with it further. Type `XmlStats -?` for help. -- **Next Error** Navigate to the next error in the list of errors. -- **Compare XML Files...** Launches XML Diff which compares the current document you are editing with another document +- **Next Error:** Navigate to the next error in the list of errors. +- **Compare XML Files...:** Launches XML Diff which compares the current document you are editing with another document on disk and displays the results. ### Insert diff --git a/docs/help/options.md b/docs/help/options.md index 440f1c8b..e55f752d 100644 --- a/docs/help/options.md +++ b/docs/help/options.md @@ -11,15 +11,15 @@ Options that enable or disable the collection of anonymous app usage information ### Color Theme, Colors and Fonts The options dialog allows you to select a color theme, light or dark, or configure the specific colors used in each type -of node as well as the font used and the background color. A drop down arrow on each color lets you pick from different -color palettes. You can also customize the font that is used in the XML Notepad tree view. +of node as well as the font used and the background color. A drop-down arrow on each color lets you pick from different +color palettes. You can also customize the font used in the XML Notepad tree view. ### Editor The editor to use if the XML file is invalid and cannot be opened by XML Notepad. ### Formatting -You can also configure the formatting options that are used when you save an XML file, or turn off formatting -altogether. Preserve Whitepsace also controls how the file is opened, when true you will see all the whitespace nodes in +You can also configure the formatting options used when you save an XML file, or turn off formatting +altogether. Preserve Whitepsace also controls how the file is opened; when true, you will see all the whitespace nodes in the document, which are used also when the file is saved. You can also configure the TreeView indentation level in pixels. @@ -40,7 +40,8 @@ Where to store these settings. See [Settings](settings.md) for more information. These settings configure the auto-update mechanism associated with the ClickOnce installer. If the "Enable updates" field is true, then XML Notepad will ping the specified "Update Location" for an "Updates.xml" file to see if a new -version of XML Notepad is available. See [Updates](updates.md) for more information on how this works. +version of XML Notepad is available. You can set the update frequency, but only if it is more than the update +frequency defined in the updates.xml file. See [Updates](updates.md) for more information on how this works. ### Validation You can turn off DTD validation. diff --git a/docs/help/overview.md b/docs/help/overview.md index aa207d19..f0c88417 100644 --- a/docs/help/overview.md +++ b/docs/help/overview.md @@ -1,5 +1,5 @@ -### User Interface +#### User Interface The interface consists of the following components: @@ -7,43 +7,43 @@ The interface consists of the following components: See also [Keyboard](keyboard.md) Interface. -### Menubar -See [Menus](menus.md) for description of each menu. +#### Menubar +See [Menus](menus.md) for a description of each menu. -### Toolbar -The toolbar provides some shortcuts for commonly used menu commands, hover over the toolbar buttons to see a popup +#### Toolbar +The toolbar provides shortcuts for commonly used menu commands. Hover over the toolbar buttons to see a popup showing the menu command they invoke. -### Address -The current file being edited. This is also a convenient place to enter an HTTP address for editing an online XML file. +#### Address +Displays the current file being edited. This is also a convenient place to enter an HTTP address for editing an online XML file. -### XSL Output Tab -The [XSLT Output tab](xslt.md) contains a web browser rendered view of the HTML output from an associated XSLT -transformation. XSLT transforms are defined when your XML documents contains an `xml-stylesheet` processing instruction. +#### XSL Output Tab +The [XSLT Output tab](xslt.md) contains a web browser-rendered view of the HTML output from an associated XSLT +transformation. XSLT transforms are defined when your XML documents contain an `xml-stylesheet` processing instruction. -### Node Values +#### Node Values The view on the right shows the text value of the adjacent node in the tree view. For element nodes that have children it shows a light blue band because the text is in the child nodes. -### Node Names -The TreeView on the left shows the XML document hierarchy in a tree showing element, attribute and processing +#### Node Names +The TreeView on the left shows the XML document hierarchy in a tree, displaying element, attribute, and processing instructions names as well as standard names for comment, text, CDATA, whitespace, and significant-whitespace nodes. -### Intellisense +#### Intellisense When you have an associated XSD schema, [intellisense](intellisense.md) popups will prompt with expected node names and enumerated node values. -### XSD Annotations +#### XSD Annotations When you have an associated XSD schema, the `xsd:documentation` associated with the current node is displayed in a tooltip popup and in the [Dynamic help](dynamic.md) tab. -### Validation Errors +#### Validation Errors The Error List at the bottom shows [validation](validation.md) errors and warnings. -### Status Bar +#### Status Bar The status bar at the bottom shows various messages indicating the state of the program. -### Resizers +#### Resizers You can move the resizers to change the ratio of space allocated to each of the main three panels. See also [XML Notepad File Association](fileassociation.md). \ No newline at end of file diff --git a/docs/help/schemas.md b/docs/help/schemas.md index 9d99206b..0e8bb3f8 100644 --- a/docs/help/schemas.md +++ b/docs/help/schemas.md @@ -4,15 +4,15 @@ The "Schemas..." item under the [View Menu](menus.md) brings up the following dialog showing the current set of known XML schemas. These schemas are used for [Validation](validation.md) and [Intellisense](intellisense.md). -![Find](../assets/images/schemas.png) +![Schemas](../assets/images/schemas.png) -You can click the browse buttons on the right hand side to bring up the Open File Dialog to browse for new files or you +You can click the browse buttons on the right-hand side to bring up the Open File Dialog to browse for new files, or you can select the "Add Files" item in the [File Menu](menus.md) to add a batch of schemas. You can click the column headings to sort by that column. -The first column contains check boxes which can be used to temporarily disable a schema from being used in validation. +The first column contains checkboxes, which can be used to temporarily disable a schema from being used in validation. -This list of schemas is persisted in the `XmlNotepad.settings` file so it is remembered next time you load XML Notepad. +This list of schemas is persisted in the `XmlNotepad.settings` file, so it is remembered the next time you load XML Notepad. When you add schemas this way you can create a new document and when you add a new root element you should see some intellisense showing possible root elements and when you select from the dropdown the new element is associated with the diff --git a/docs/help/settings.md b/docs/help/settings.md index 050160a3..ea4fe5c1 100644 --- a/docs/help/settings.md +++ b/docs/help/settings.md @@ -14,11 +14,11 @@ You can change where XML Notepad stores the settings file if you go to the [Opti | Name | Location | | ------------- |-------------| -| Portable | Stored where ever XmlNotepad.exe was installed | +| Portable | Stored whereever XmlNotepad.exe was installed | | Local | %LOCALAPPDATA%\Microsoft\Xml Notepad\ | | Roaming | %APPDATA%\Microsoft\Xml Notepad\ | -The `Roaming` folder might be automatically migrated to all your machines because it associated with a [Roaming User +The `Roaming` folder might be automatically migrated to all your machines because it is associated with a [Roaming User Profile](https://blogs.windows.com/windowsdeveloper/2016/05/03/getting-started-with-roaming-app-data/). The `Portable` option makes it easy for you to `xcopy` the folder to other machines and get the same settings. This @@ -35,7 +35,7 @@ and it will use the first one that it finds. ## Settings Template -o make it easier to pre-configure XML notepad across a bunch of machines, you can provide a customized +o make it easier to pre-configure XML Notepad across a bunch of machines, you can provide a customized `XmlNotepad.template.settings` template file next to `XmlNotepad.exe` and the first time a user launches XmlNotepad on a machine it will use this template for the initial default settings for that user, which is then copied to the `Roaming` location. diff --git a/docs/help/updates.md b/docs/help/updates.md index 692bb9a4..313ed858 100644 --- a/docs/help/updates.md +++ b/docs/help/updates.md @@ -25,7 +25,7 @@ This section contains the following information: - **title** - the title of the application being updated. - **location** - this field allows the remote administrator to move where XML Notepad is looking for updates. When XML Notepad discovers a new value here it automatically updates the setting displayed in the options dialog. -- **installer** - this field contains the web page location that lists the different XML notepad installers that can be +- **installer** - this field contains the web page location that lists the different XML Notepad installers that can be used to update the app. - **history** - the list that describes all the changes in each version. - **frequency** - how often to ping the updates.xml page for updates. The default is no more than once per day. @@ -34,6 +34,7 @@ You can configure the auto-update mechanism using the following settings in the - **Enable Updates** - if this is false XML Notepad will not ping to see if there are any updates available and the menu item `Check for udpates...` under the Help menu will be hidden. - **Update location** - which endpoint to use to look for updated `updates.xml` files. +- **Update frequency** - you can edit this field to increase the frequency if you want a larger time span than is specified in the update.xml file. You can add the `DisableUpdateUI` setting the `XmlNotepad.settings` file so that users will never see any options regarding auto-updates or the `Check for updates...` menu item as follows: diff --git a/docs/help/validation.md b/docs/help/validation.md index 376561c3..4f7857e7 100644 --- a/docs/help/validation.md +++ b/docs/help/validation.md @@ -4,8 +4,8 @@ XML Notepad validates your document while you are editing and shows any errors or warnings in the Error List panel. You can double click those errors to navigate to the node in error so you can then fix it. -XSD Schemas are located using the standard xsi:schemaLocation and xsi:noNamespaceSchemaLocation attributes where the xsi -prefix is bound to the http://www.w3.org/2001/XMLSchema-instance namespace or you can specify schemas using the [Schema +XSD Schemas are located using the standard `xsi:schemaLocation` and `xsi:noNamespaceSchemaLocation` attributes where the `xsi` +prefix is bound to the `http://www.w3.org/2001/XMLSchema-instance` namespace or you can specify schemas using the [Schema Dialog](schemas.md). Once a schema is associated with your document you will also get prompted by [Intellisense](intellisense.md) for element diff --git a/docs/index.md b/docs/index.md index 937807cc..f05a1e18 100644 --- a/docs/index.md +++ b/docs/index.md @@ -16,27 +16,27 @@ Fortunately, another good friend, Michael Corning, took interest in it, helped h some cool features himself. Dan Doris also took pity on Chris and helped identify some great bugs. So here we are, a nifty tool that should be useful to those who want a quick way to view and edit XML documents. -There have been over 6 million downloads since then - so thanks to everyone who tried it out! +There have been over 6 million downloads since then - thanks to everyone who tried it out! ### Handy features include: -- Ability to load .csv, .json and .htm files converting them to XML. +- Ability to load .csv, .json, and .htm files, converting them to XML. - Tree View synchronized with Node Text View for quick editing of node names and values. -- Incremental search (Ctrl+I) in both tree and text views, so as you type it navigates to matching nodes. +- Incremental search (Ctrl+I) in both tree and text views, so as you type, it navigates to matching nodes. - [Cut/copy/paste](help/clipboard.md) with full namespace support. - [Drag/drop support](help/dragdrop.md) for easy manipulation of the tree, even across different instances of XML Notepad and from the file system. - Infinite undo/redo for all edit operations. -- In place popup multi-line editing of large text node values. +- In-place popup multi-line editing of large text node values. - Configurable fonts and colors via the [options dialog](help/options.md). - Full [find/replace dialog](help/find.md) with support for regex and XPath. - Good performance on large XML documents, loading a 3mb document in about one second. -- Instant [XML schema validation](help/validation.md) while you edit with errors and warnings shown in the task list +- Instant [XML schema validation](help/validation.md) while you edit, with errors and warnings shown in the task list window. -- [Intellisense](help/intellisense.md) based on expected elements and attributes and enumerated simple type values. -- Support for [custom editors](help/customeditors.md) for date, dateTime and time datatypes and other types like color. -- Handy nudge tool bar buttons for quick movement of nodes up and down the tree. -- [Inplace HTML viewer](help/xslt.md) for processing ` 0 - 2.9.0.10 + 2.9.0.11 $(ApplicationVersion) Chris Lovett XmlNotepad diff --git a/src/XmlNotepad/StringResources.Designer.cs b/src/XmlNotepad/StringResources.Designer.cs index b66b8313..a0957744 100644 --- a/src/XmlNotepad/StringResources.Designer.cs +++ b/src/XmlNotepad/StringResources.Designer.cs @@ -1652,6 +1652,42 @@ public static string UpdateCategory { } } + /// + /// Looks up a localized string similar to Update Frequency. + /// + public static string UpdateFrequency { + get { + return ResourceManager.GetString("UpdateFrequency", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to How often to check for updates in dd:hh:mm:ss format. + /// + public static string UpdateFrequencyDescription { + get { + return ResourceManager.GetString("UpdateFrequencyDescription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Update Frequency timespan invalid format, it must be dd:hh:mm:ss.. + /// + public static string UpdateFrequencyFormatError { + get { + return ResourceManager.GetString("UpdateFrequencyFormatError", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Update Frequency cannot be less than 30 minutes. + /// + public static string UpdateFrequencyMinError { + get { + return ResourceManager.GetString("UpdateFrequencyMinError", resourceCulture); + } + } + /// /// Looks up a localized string similar to Update location. /// diff --git a/src/XmlNotepad/StringResources.resx b/src/XmlNotepad/StringResources.resx index c4440726..32921592 100644 --- a/src/XmlNotepad/StringResources.resx +++ b/src/XmlNotepad/StringResources.resx @@ -573,6 +573,22 @@ Do you want to enable execution of this script code? Whether to check for updates periodically Property Grid description + + + Update Frequency + Property Grid property name + + + How often to check for updates in dd:hh:mm:ss format + Property Grid description + + + Update Frequency cannot be less than 30 minutes + Property Grid validation error + + + Update Frequency timespan invalid format, it must be dd:hh:mm:ss. + Property Grid validation error Analytics diff --git a/src/XmlNotepadBundle/Bundle.wxs b/src/XmlNotepadBundle/Bundle.wxs index e3dd3bc8..c2801632 100644 --- a/src/XmlNotepadBundle/Bundle.wxs +++ b/src/XmlNotepadBundle/Bundle.wxs @@ -1,6 +1,6 @@  - + diff --git a/src/XmlNotepadPackage/Package.appxmanifest b/src/XmlNotepadPackage/Package.appxmanifest index 0d67acdf..1c35201a 100644 --- a/src/XmlNotepadPackage/Package.appxmanifest +++ b/src/XmlNotepadPackage/Package.appxmanifest @@ -1,6 +1,6 @@  - + XmlNotepad Chris Lovett diff --git a/src/XmlNotepadSetup/Product.wxs b/src/XmlNotepadSetup/Product.wxs index a41ad436..35a2f4ec 100644 --- a/src/XmlNotepadSetup/Product.wxs +++ b/src/XmlNotepadSetup/Product.wxs @@ -1,6 +1,6 @@  - +