alefragnani / vscode-project-manager

Project Manager Extension for Visual Studio Code
GNU General Public License v3.0
1.87k stars 222 forks source link
project-management typescript visual-studio-code vscode vscode-extension


Project Manager Logo

What's new in Project Manager 12.8

Support

Project Manager is an extension created for Visual Studio Code. If you find it useful, please consider supporting it.

Project Manager

It helps you to easily access your projects, no matter where they are located. Don't miss those important projects anymore.

You can define your own Projects (also called Favorites), or choose for auto-detect Git, Mercurial or SVN repositories, VSCode folders, or any other folder.

Here are some of the features that Project Manager provides:

Features

Available Commands

Manage your projects

Save Project

You can save the current folder/workspace as a Project at any time. You just need to type its name.

Save

It suggests a name to you automatically :)

Edit Projects

For easier customization of your project list, you can edit the projects.json file, directly inside Code. Just execute Project Manager: Edit Projects and the projects.json file is opened. Simple as this:

[
    {
        "name": "Pascal MI",
        "rootPath": "c:\\PascalProjects\\pascal-menu-insight",
        "tags": [],
        "enabled": true
    },
    {
        "name": "Bookmarks",
        "rootPath": "$home\\Documents\\GitHub\\vscode-bookmarks",
        "tags": [
            "Personal",
            "VS Code"
        ],
        "enabled": true
    },
    {
        "name": "Numbered Bookmarks",
        "rootPath": "~\\Documents\\GitHub\\vscode-numbered-bookmarks",
        "tags": [
            "Personal",
            "VS Code"
        ],
        "enabled": false
    }
]

You can use ~ or $home while defining any path. It will be replaced by your HOME folder.

Be sure that the JSON file is well-formed. Otherwise, Project Manager will not be able to open it, and an error message like this should appear. In this case, you should use the Open File button to fix it.

Corrupted

Access

List Projects to Open

Shows your projects and select one to open.

List Projects to Open in New Window

Just like List Projects but always opening in New Window.

Keyboard Focused Users

If you are a keyboard focused user and uses Vim like keyboard navigation, you can navigate thru the project list with your own keybindings.

Just use the when clause "inProjectManagerList", like:

    {
        "key": "ctrl+j",
        "command": "workbench.action.quickOpenSelectNext",
        "when": "inProjectManagerList"
    }

Working with Remotes

The extension support Remote Development scenarios, and you may choose how to use it, depending on your needs

I access Remotes, but most of my work is Local

This is the regular scenario, and that's why you don't need to do anything special for the extension to work. It works out of the box.

When installed locally, you can save any Container, SSH, WSL or Codespaces projects as Favorites. Each one will have its own icon to be properly identified, and when you select them, VS Code will open the remote automatically.

It just works

But what if I do most of my work on Remotes

If you normally connect to remotes (like SSH/WSL) and would like to save Favorite projects on that remote, or to be able to auto-detect repos located on that remote, you must activate/install the extension to work on remotes.

You just have to add the lines below on your User Settings.

    "remote.extensionKind": {
        "alefragnani.project-manager": [
            "workspace"
        ]
    },

More details on VS Code documentation

Available Settings

You can choose how your projects are sorted

    "projectManager.sortList": "Name"

List

    "projectManager.groupList": true
    "projectManager.removeCurrentProjectFromList": true
    "projectManager.checkInvalidPathsBeforeListing": false
    "projectManager.supportSymlinksOnBaseFolders": true
    "projectManager.showParentFolderInfoOnDuplicates": true
    "projectManager.filterOnFullPath": true

If you intend to share projects between Stable and Insider installations, or if you store your settings in different locations (cloud services), you can indicate an alternative location for the projects.json file.

    "projectManager.projectsLocation": "C\\Users\\myUser\\AppData\\Roaming\\Code\\User"

You can use ~ or $home while defining the path. It will be replaced by your HOME folder.

    "projectManager.git.baseFolders": [
        "c:\\Projects\\code",
        "d:\\MoreProjects\\code-testing",
        "$home\\personal-coding"
    ]

Define the folders which contains the projects

    "projectManager.git.ignoredFolders": [
        "node_modules", 
        "out", 
        "typings", 
        "test"
        "fork*"
    ],

Define which folders should be ignored (inside the BaseFolders).

It supports glob patterns

    "projectManager.git.maxDepthRecursion": 4

Define how deeps it should search for projects

    "projectManager.ignoreProjectsWithinProjects": true
    "projectManager.cacheProjectsBetweenSessions": false
    "projectManager.showProjectNameInStatusBar": true
    "projectManager.openInNewWindowWhenClickingInStatusBar": true
    "projectManager.openInCurrentWindowIfEmpty": "always"
    "projectManager.tags": [
        "Personal", 
        "Work",
        "VS Code",
        "Learning"
    ]

Available Colors

Side Bar

The Project Manager extension has its own Side Bar, with a variety of commands to improve you productivity.

Side Bar

Project Tags - View and Filter

Starting in v12.3, you can now organize your Projects with Tags.

You can define your custom tags (via projectManager.tags setting), define multiple tags for each project, and filter the projects baded on their tags.

Side Bar

Installation and Configuration

You should follow the official documentation to:

License

GPL-3.0 © Alessandro Fragnani