Skip to content

willasm/pnotes

Repository files navigation

Project Notes

IMPORTANT CHANGE IN v2.1.0 Please see Local Notes Have Moved.md for details.

IMPORTANT: If you have the old version of this extension installed Project Notes + TODO Highlighter it should be removed before installing this newer version. They are not compatible with each other and will cause issues if they are run simutaneously.

Note: This is a complete rewrite of my earlier version Project Notes + TODO Highlighter found here on VS Code Marketplace and on Github. The syntax highlighting was only intended to be a minor addition to the extension but it has grown to the point where it really needed be its own seperate extension. Comment Highlighter can now be found on VSCode Marketplace and on Github. Seperating the old extension into two extensions allows me to focus exclusivly on each of the new extensions as needed. The old extension will remain available for those that wish to use it but it will only receive limited support for bug fixes if they are discovered.

Table of Contents

Features

  • Maintains 2 lists of notes, one project specific and one global available to all projects.
  • All notes have its location displayed in its tooltip
  • Reads all files in sub-folders of the notes folders
  • Insert Links to project note files inside your codes comments.
  • Insert Links to global note files inside your codes comments.
  • Auto generates (Scratchpad).md in Project Notes folder - Scratchpad for quick notes that don't require a dedicated note
    • Can be turned off in the settings
  • Auto generates (TODO).md in Project Notes folder - Quick access task list
    • Use the command Project Notes: Create New TODO Task to add new task
    • Can be turned off in the settings
  • Auto generates (Project Notes Guide).md in Global Notes folder - Quick guide on this extensions usage
    • This file can safely be deleted after viewing
    • Will only create the file once (Can be re-created by enabling it in the settings)
  • User definable colors for all notes
    • In settings.json under the key "workbench.colorCustomizations" type "pnoteTreeItem." to get a popup of all available colors
    • See Changing the Default File Colors for details
  • Assign different icons to any note you wish (must be .svg files)
    • You can add icons to the extension with the command Project Notes: Add New User Icons
    • You can list current user icons with the command Project Notes: List Current User Icons
      • Selecting one from the list will copy its name into the clipboard
      • Makes it easier to define notes icon
    • You can remove current user icons with the command Project Notes: Remove User Icons
  • Assign a priority to any note (Priority 1 to 5, each with its own color and icon)

Screenshot

Example Screenshot

Settings

  • Project Notes Folder Location (Folder Name for Local and Global Notes)
    • Use the command Project Notes: Set Local Notes Folder Name to set this
    • Default is .pnotes
  • Auto Create Scratchpad Local Project Note
    • Creates a local project note, (Scratchpad).md file
    • Useful for those quick notes that do not require a dedicated note file
    • With the name (Scratchpad).md it will always appear at or near the top of the notes list
    • Default is true
  • Auto Create Todo Local Project Note
    • Creates a local project note, (TODO).md file
    • Useful for creating a list of those quick tasks that you wish to accomplish
    • Use the command Project Notes: Create New TODO Task to quickly insert a new task
    • With the name (TODO).md it will always appear near the top of the notes list
    • Default is true
  • Create Global Project Notes Guide File
    • A handy quick reference file for Project Notes extension
    • Can be safely deleted when done viewing
    • Once created, this setting is automatically set to false to prevent creating it again after deleting the note
    • Can be restored by enabling this setting again
    • Default is true
  • Prompt Move Local Notes
    • NOTE: This only applies to users of v2.0.2 or earlier
    • The location for project notes moved outside of the project folder
    • This will prompt you to move/copy your local notes to the new location
    • See the file Local Notes Have Moved.md
    • Default is true

Commands

The following commands are available from the command pallette: (Windows: CTRL+Shift+P or F1) (Mac: CMD+Shift+P)

  • Project Notes: Set Global and Local Notes Folder Location

    • Sets the local and global notes locations folder name
    • Uses ShowOpenDialog to select a folder
    • Defaults to .projectnotes folder in the users home folder
  • Project Notes: Create New TODO Task

    • Prompts for the text of a new task which will be appended to the (TODO).md file in the local projects folder
    • Hovering over the file will show a tooltip with Total Tasks, Incompleted Tasks, and Completed Tasks
  • Project Notes: Open Note File Link

  • Project Notes: Add New User Icons

    • Opens an "Open File Dialog" allowing you to select multiple svg icons for use with files in the tree view
    • Original icon is not touched at all, it is just copied to this extensions global storage
    • Icons are stored in this extensions global storage meaning that they will remain there after extension updates
  • Project Notes: List Current User Icons

    • Opens a quick pick list of all current user icons
    • Selecting in icon will copy its name to the clipboard (Makes it easier to assign an icon to a file)
  • Project Notes: Remove User Icons

    • Opens a multi-select quick pick list allowing you to select multiple icons for removal from the extension

File Links

Local Note Links

In your source code create a comment with the text Local File: {Filename}.md for project notes. The Local File: portion is the trigger for determining the following notes file name.

Global Note Links

In your source code create a comment with the text Global File: {Filename}.md for global notes. The Global File: portion is the trigger for determining the following notes file name.

How to Use the Links

To create (or open an existing note) simply run the command Project Notes: Open Note File Link with the cursor anywhere on the same line as the Local File: Filename.md or Global File: Filename.md comment. If the file already exists it will be opened in a new editor window, otherwise a new file will be created with the file name provided in the comment.

Snippets are included for inserting both types of note links.

  • Type localNoteLink to insert project file link
  • Type globalNoteLink to insert global file link

Special Files

(Sratchpad).md

The file (Sratchpad).md is created in the Project Notes folder if enabled in the settings. This scratchpad is for those quick notes that don't require a dedicated note. If this file is deleted it will be recreated the next time you open this project in VS Code, unless it is disabled in the settings.

(TODO).md

The file (TODO).md is created in the Project Notes folder if enabled in the settings. This is essentially a quick access todo task list for your project. You can add a new task by running the command Project Notes: Create New TODO Task. This will prompt you for the text of the task and append the new task to the end of the file in the format - [ ] {YOUR TEXT INPUT}. When hovering your mouse cursor over this file, a tooltip will be displayed showing the "Total Tasks: {NUMBER}", "Incompleted Tasks: {NUMBER}" and "Completed Tasks: {NUMBER}". A checkmark badge followed by the total number of tasks is displayed to the right of the file name.

TODO Example with Tooltip...

tooltip-example

(Project Notes Guide).md

The file (Project Notes Guide).md is created in the Global Notes folder if enabled in the settings. This is a quick guide on this extensions usage. It will only be created the first time the extension is run after which the setting to create this file is set to false. It is perfectly fine to delete this file if you no longer wish to see it. If you would like to re-create it, just enable it in the settings again and restart VS Code.

Frontmatter Keys for files Priority and files Icon

Priority

Adding the key Priority: {NUMBER} (1 to 5 - 1 = highest, 5 = lowest) to the notes frontmatter will set the color of the notes name to 1 - Red, 2 - Orange, 3 - Yellow, 4 - Green and 5 - Blue. It will also prepend the name with a circular icon of the same color and add a badge to the right displaying the priority number. See the screenshot for an example.

Icon

Adding the key Icon: {FILENAME.svg} to the notes frontmatter will set this files icon to a user added icon. The filename can be unquoted, double quoted, or single quoted - whichever you prefer. You can add new icons to the extension with the command Project Notes: Add New User Icons. The original icons are left untouched, they are just copied to this extensions global storage folder. You can get a list of all current user icons by running the command Project Notes: List Current User Icons. Selecting an item from this list will copy the filename to the clipboard easily allowing you to paste the name into the frontmatter. To remove user icons from this extension you can run the command Project Notes: Remove User Icons. This creates a multi-select picker allowing you to remove all selected icons. Note that setting a user icon on a file with a priority value set will override the the default circular icon used for priorities.

Example:

---
Priority: {number 1 to 5}
Icon: {filename.svg}
---

Changing the Default File Colors

You can override the default file colors in the settings.json file under the workbench.colorCustomizations key...

pnoteTreeItem.filenameTextColor sets all normal files text color

pnoteTreeItem.scratchpadTextColor sets the (Scratchpad).md files text color

pnoteTreeItem.todoTextColor sets the (TODO).md files text color

pnoteTreeItem.guideTextColor sets the (Project Notes Guide).md files text color

pnoteTreeItem.priorityOneTextColor sets the Priority One file text color

pnoteTreeItem.priorityTwoTextColor sets the Priority Two file text color

pnoteTreeItem.priorityThreeTextColor sets the Priority Three file text color

pnoteTreeItem.priorityFourTextColor sets the Priority Four file text color

pnoteTreeItem.priorityFiveTextColor sets the Priority Five file text color

Example Screenshot...

Example Screenshot

Acknowledgements

Icon made by Freepik from www.flaticon.com

Notepad icons created by Freepik - Flaticon

Recommended

The Comment Highlighter extension which has support for highlighting project and global file links.

Release Notes and Changelog

See the Release Notes for details on this released version or Changelog for a history of all changes.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published