This extension quickly searches (using ripgrep) your workspace for comment tags like TODO and FIXME, and displays them in a tree view in the activity bar. The view can be dragged out of the activity bar into the explorer pane (or anywhere else you would prefer it to be).
New!: If you just want to set different colours for tags, you can now enable todo-tree.highlights.useColourScheme. This will apply a set of colours (which can be changed) to the tags in the order that they are defined.
Highlighting tags is configurable. Use defaultHighlight to set up highlights for all tags. If you need to configure individual tags differently, use customHighlight. If settings are not specified in customHighlight, the value from defaultHighlight is used.
icon - used to set a different icon in the tree view. Must be a valid octicon (see ) or codicon (see -codicons/dist/codicon.html). If using codicons, specify them in the format "$(icon)". The icon defaults to a tick if it's not valid. You can also use "todo-tree", or "todo-tree-filled" if you want to use the icon from the activity view.
iconColour - used to set the colour of the icon in the tree. If not specified, it will try to use the foreground colour or the background colour. Colour can be specified as per foreground and background colours, but see note below.
rulerColour - used to set the colour of the marker in the overview ruler. If not specified, it will default to use the foreground colour. Colour can be specified as per foreground and background colours.
rulerLane - used to set the lane for the marker in the overview ruler. If not specified, it will default to the right hand lane. Use one of "left", "center", "right", or "full". You can also use "none" to disable the ruler markers.
Note: The current filters are shown in the debug log. Also, the filter can always be reset by right clicking the Nothing Found item in the tree. If your tree becomes invisible because everything is filtered and hideTreeWhenEmpty is set to true, you can reset the filter by pressing F1 and selecting the Todo Tree: Reset Folder Filter command.
The contents of the tree can be exported using Todo Tree: Export Tree. A read-only file will be created using the path specified with todo-tree.general.exportPath. The file can be saved using File: Save As.... Note: Currently File: Save does not work which seems to be a VSCode bug (see ).
todo-tree.general.periodicRefreshInteval (0)Interval (in minutes) for automatically refreshing the tree. Set to '0' to disable, or to the number of minutes between refreshes. Note: This is not typically needed as the tree will be refreshed when files change.
todo-tree.general.automaticGitRefreshInterval (0)Polling interval (in seconds) for automatically refreshing the tree when your repository is updated. This will check if your repository HEAD has changed and trigger a rescan of the workspace if it has. This replaces the file watcher functionality. Set to '0' to disable, or to the number of seconds between checks.
todo-tree.general.schemes (['file','ssh','untitled'])Editor schemes to find TODOs in. To find TODOs in settings files, for instance, add vscode-userdata or for output windows, add output.
This treats any of FIXME, FIXIT or FIX as FIXME. When the tree is grouped by tag, all of these will appear under the FIXME node. This also means that custom highlights are applied to the group, not each tag type.
todo-tree.general.revealBehaviour (start of todo)Change the cursor behaviour when clicking a todo in the tree. You can choose from: start of todo (moves the cursor to the beginning of the todo), end of todo (moves the cursor to the end of the todo), start of line (moves the cursor to the start of the line) or leave focus in tree which leaves the focus in the tree, allowing keyboard navigation of the tree.
todo-tree.filtering.includeGlobs ([])Globs for use in limiting search results by inclusion, e.g. [\"**/unit-tests/*.js\"] to only show .js files in unit-tests subfolders. Globs help.
todo-tree.highlights.useColourScheme (false)Use a simple scheme for colouring highlights. This will simply apply a list of colours in the same order as the tags are defined. Use this as a much simpler alternative to setting up custom highlights for each tag.
todo-tree.highlights.backgroundColourScheme (["red","orange","yellow","green","blue","indigo","violet"])Defines colours for use in conjunction with todo-tree.highlights.useColourScheme to colour highlights. Colours can be defined in the same way as other colours (e.g. hex code, theme names, etc.). If there are more tags than colours, the sequence is repeated.
todo-tree.highlights.foreroundColourScheme (["white","black","black","white","white","white","black"])Defines colours for use in conjunction with todo-tree.highlights.backgroundColourScheme to colour highlights. These colours should be complementary to the background colours.
todo-tree.regex.enableMultiLine (false)Normally, multiline support is enabled by detecting the use of \n in the regex. Set this to true, to enable multiline support by default. This allows the use of [\s\S] as an alternative to matching any character including newlines.
todo-tree.regex.subTagRegexThis is a regular expression for processing the text to the right of the tag, e.g. for extracting a sub tag, or removing unwanted characters. Anything that the regex matches will be removed from the text. If a capture group is included, the contents are extracted into a sub tag, which will be used in the tree to group similar tags. The sub tag can also be used as a placeholder in todo-tree.tree.subTagClickUrl and todo-tree.tree.labelFormat. Sub tags can also be highlighted by specifying a section in the todo-tree.highlights.customHighlights setting. To highlight the sub tag itself, set "type" to "tag-and-subTag" in custom highlights for the tag.
todo-tree.ripgrep.ripgrep ("")Normally, the extension will locate ripgrep itself as and when required. If you want to use an alternate version of ripgrep, set this to point to wherever it is installed.
todo-tree.ripgrep.ripgrepMaxBuffer (200)By default, the ripgrep process will have a buffer of 200KB. However, this is sometimes not enough for all the tags you might want to see. This setting can be used to increase the buffer size accordingly.
todo-tree.ripgrep.usePatternFile (true)A pattern file is used with ripgrep by default. If you experience issues with deleting the pattern file, set this to false to use the legacy method of providing the regex to ripgrep.
todo-tree.tree.sort (true)ripgrep searches using multiple threads to improve performance. The tree is sorted when it is populated so that it stays stable. If you want to use ripgrep's own sort arguments, set this to false.
todo-tree.tree.disableCompactFolders (false)The tree will normally respect the VSCode's explorer.compactFolders setting. Set this to true if you want to disable compact folders in the todo tree.
If the regex contains \n, then multiline TODOs will be enabled. In this mode, the search results are processed slightly differently. If results are found which do not contain any tags from todo-tree.general.tags it will be assumed that they belong to the previous result that did have a tag. For example, if you set the regex to something like:
To restrict the set of folders which is searched, you can define todo-tree.filtering.includeGlobs. This is an array of globs which the search results are matched against. If the results match any of the globs, they will be shown. By default the array is empty, which matches everything. See here for more information on globs.
When the extension was first written, very basic markdown support was added simply by adding a pattern to the default regex to match "- [ ]". A better way to handle markdown TODOs is to add "(-\d+.)" to the list of "comments" in the first part of the regex and then adding "[ ]" and "[x]" to the list of tags in settings.json, e.g. :
Grouping by tag will only work when your configuration defines the tags using the todo-tree.general.tags setting. Older versions of the extension had the tags directly defined in the todo-tree.regex.regex whereas now, the regex replaces $TAGS with the contents of todo-tree.general.tags.
In a category of over 230 candidates, this is a great achievement for todo.vu. Specifically todo.vu was classified a Product Leader in the market. This is continuing recognition that our great team is delivering something unique and new to the market, but also recognition of the great support we have from our existing customers.
We are pleased to have made this list of top business management software for 2020. This is a crowded field with some heavily funded players. But ultimately on a value comparison, todo.vu holds its ground. Thanks as always to our valued customers who inspire and motivate us to deliver the best value for everyone.
As a small design company, I had been searching for a project management tool that was easy to use and navigate, that had all the segments and features I needed in it, and most importantly could fit my budget and scale as I grew. todo.vu has hit the sweet spot on all fronts. It gives us just enough flexibility to communicate and log what my team needs to in order to get the job done, but enough framework so that nothing falls through the cracks. The desktop and mobile interfaces are very user-friendly, so management and updates can be handled virtually anywhere. Checklists, Timelines, File Handling, Due Date, Delegation, Status, all the features are there!
This information relates to a pre-release product that may be substantially modified before it's commercially released. Microsoft makes no warranties, express or implied, with respect to the information provided here.