Git Product home page Git Product logo

vscode-project-manager's Introduction


Project Manager Logo

What's new in Project Manager 12.8

  • Published to Open VSX
  • Adds Getting Started / Walkthrough
  • Organize your projects with Tags
  • Adds Virtual Workspaces support
  • Adds Workspace Trust support

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:

  • Save any folder or workspace as a Project
  • Auto-detect Git, Mercurial or SVN repositories
  • Organize your projects using Tags
  • Open projects in the same or new window
  • Identify deleted/renamed projects
  • A Status Bar which identifies the current project
  • A dedicated Side Bar

Features

Available Commands

  • Project Manager: Save Project Save the current folder/workspace as a new project
  • Project Manager: Edit Project Edit your projects manually (projects.json)
  • Project Manager: List Projects to Open List all saved/detected projects and pick one
  • Project Manager: List Projects to Open in New Window List all saved/detected projects and pick one to be opened in New Window
  • Project Manager: Filter Projects by Tag Filter the Favorite projects by selected tags

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

  • Saved: The order that you saved the projects
  • Name: The name that you typed for the project
  • Path: The full path of the project
  • Recent: The recently used projects
    "projectManager.sortList": "Name"

List

  • Choose if the project list must be grouped by its kind (Favorites, Git, Mercurial, SVN and VS Code).
    "projectManager.groupList": true
  • Should the current project be removed from the list? (false by default)
    "projectManager.removeCurrentProjectFromList": true
  • Should identify invalid paths on project list? (true by default)
    "projectManager.checkInvalidPathsBeforeListing": false
  • Should support symlinks on baseFolders? (false by default)
    "projectManager.supportSymlinksOnBaseFolders": true
  • Should show the parent folder info when projects with same name are detected? (false by default)
    "projectManager.showParentFolderInfoOnDuplicates": true
  • Filter Projects Through Full Path (false by default)
    "projectManager.filterOnFullPath": true
  • Custom projects file (projects.json) location

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.

  • Automatic Detection of Projects (Git git, Mercurial git, SVN svn and VSCode vscode)
    "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

  • Should ignore projects found inside other projects? (false by default)
    "projectManager.ignoreProjectsWithinProjects": true
  • Cache automatically detected projects (true by default)
    "projectManager.cacheProjectsBetweenSessions": false
  • Display the Project Name in Status Bar (true by default)
    "projectManager.showProjectNameInStatusBar": true
  • Open projects in New Window when clicking in status bar (false by default)
    "projectManager.openInNewWindowWhenClickingInStatusBar": true
  • Indicates if the New Window command should open the project in current window, when empty (always by default)

    • always: Whenever you call the Open in New Window command, it will open in the current window, if empty
    • onlyUsingCommandPalette: Only open in the current window if you use the Command Palette
    • onlyUsingSideBar: Only open in the current window if you use the Side Bar
    • never: Works as today. The Open in New Window command will always open in New Window
    "projectManager.openInCurrentWindowIfEmpty": "always"
  • Indicates the list of tags you can use to organize your projects (Personal and Work by default)
    "projectManager.tags": [
        "Personal", 
        "Work",
        "VS Code",
        "Learning"
    ]

Available Colors

  • Choose the foreground color to highlight the current project in the Side Bar
    "workbench.colorCustomizations": {
      "projectManager.sideBar.currentProjectHighlightForeground": "#e13015"  
    }

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

vscode-project-manager's People

Contributors

alefragnani avatar apettenati avatar bondoq avatar chakyiu avatar chuxel avatar ckaczor avatar csholmq avatar cuth avatar damsfx avatar dependabot[bot] avatar efidiles avatar egamma avatar gama11 avatar gavinr avatar geauxtigers avatar hcwhan avatar jcw- avatar kant avatar ksxgithub avatar l1cardo avatar likun7981 avatar loniceras avatar mlewand avatar r3olon avatar ryanjbonnell avatar sabihoshi avatar satokaz avatar tekerson avatar torn4dom4n avatar winitop avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vscode-project-manager's Issues

Open multiple projects not working

is there any way to open multiple projects at the same time ? i mean multiple windows for different projects ? i tried but opening nothing

Switching between open windows

Have you considered extending it to show all open VS Code sessions, and let me switch between those? I don't know off the top of my head whether an extension can know when the window is being closed. If not, the list could be "recently opened folders" or something.

I'd find both modes really useful - like cmd+alt+p to show my saved projects, ctrl+cmd+p to show all open windows.

Selecting a saved project does not open

Hi

I have been trying this plugin quite a bit however when I select a project from the list which I had saved 99% of the time nothing happens. There were times that it worked however generally it doesn't work for me.

I'm using Windows 10 (also Windows 7 at work) and both same issue.
I should have latest as of today of for this plugin and latest VS Code 0.10.11

Unit Test

Create Unit Test for the extension: It should cover all ts files, which are:

  • extension.ts
  • stack.ts
  • sorter.ts
  • storage.ts
  • abstractLocator.ts
  • vscodeLocator.ts
  • gitLocator.ts
  • svnLocator.ts

Also, move ts files for src folder, just like the new extensions structure:

  • move ts files to src folder
  • adjust package.json
  • adjust launch.json
  • adjust *.test.ts

Publish on Travis

  • publish on Travis

Click or enter in project list does not work

Hi

Everything is in the title. When i list my projects and want to load one, click or enter does nothing

Platform : Mac Os X 10.11.3 , VSCode latest version, extensions up to date

projects.json is not created in a code-insiders only environment

projects.json is dependent on the PATH of the vscode stable.

vscode stable:
$HOME/Library/Application Support/Code/User/

vscode-insiders
$HOME/Library/Application Support/Code - Insiders/

projectFile is hardcoded to "Code/User/projects.json".
"$HOME/Library/Application Support/Code/" directory is not create to be to launch the vscode-stable.
need to support to insiders build.

https://github.com/alefragnani/vscode-project-manager/blob/master/extension.ts#L18-L19

It does not come to mind a little good idea...

Mac OS X 10.11.3

project switch does not work with network folder

when i have my projects on network folder, the project switch doesn't work correctly.

Example:
Folderpath: "\projects\webrepositories\projectname"

the exec looks like: "C:\Program Files (x86)\Microsoft VS Code\bin\code.cmd" "\\projects\webrepositories\projectname"

he is trying to open: "\projects\webrepositories\projectname" (it is missing a "" at the begin)

i have tried to resolve the problem with following solution (works with network folder and also local folders):
change line 142 from:
projectPath = normalizePath(projectPath);

to:
projectPath = surroundByDoubleQuotes(projectPath);

exec looks than like: "C:\Program Files (x86)\Microsoft VS Code\bin\code.cmd" "\projects\webrepositories\projectname"

os: windows 7
vscode: 0.10.8
projectmanager: 0.5.1

VS Code 0.10.12 - OSX - Project switching doesn't work

Sorry to raise this, but it doesn't seem to be functioning on
OSX with VS Code 0.10.12.

Procedure used:
F1 -> Project Manager : List Projects -> click on wanted project

I'd be happy to debug and help, but I'm not sure how.

Thanks

kill terminal process on project switch

I use the vscode integrated terminal to run commands ( webpack, gulp watch, ...) but when i switch projects those processes are unreachable (unless you close them with a task manager)
would it be possible to kill them when I switch project (also running a default command when i open a project would be cool)

Indicate "invalid paths" in Project List

When a project path is invalid (was renamed, moved, or wrongly typed), the user will receive messages showing Path does not exist, and will not open it.

To be more user friendly, the item should already be displayed differently (dimmed / error icon, etc) and when selected, it should ask the user to update the path, or remove it.

Running the contributed command:'projectManager.listProjects' failed.

OSX 10.11.4
VSC 1.1.1
Project Manager 0.7

run "project manager list" command, alert the failed message as "Running the contributed command:'projectManager.listProjects' failed."
note: "project manager save", "project manager edit" is normal

console logs:
Running the contributed command:'projectManager.listProjects' failed. //Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/workbench.main.js:117

e.onUnexpectedError @ //Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/workbench.main.js:117

WARNING: Promise with no error callback:6
//Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/workbench.main.js:31
//Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/workbench.main.js:31

Object
error: "Running the contributed command:'projectManager.listProjects' failed."exception: nullhandler: undefinedid: 6parent: undefinedpromise: dirname.undefined.t.Class.derive._oncancel_errorId: 6_isException: false_listeners: null_nextState: null_oncancel: null_state: Object_completed: i()arguments: (...)caller: (...)length: 0name: "i"prototype: Objectconstructor: i()__proto: Object__proto__: ()error: i()notify: p(e,t)progress: i()setCompleteValue: i()setErrorValue: i()cancel: i()done: nullenter: (e)name: "error"then: null__proto: Object_value: "Running the contributed command:'projectManager.listProjects' failed."done: (e,t)arguments: (...)caller: (...)length: 2name: ""prototype: Object__proto: ()then: (e,t)arguments: (...)caller: (...)length: 2name: ""prototype: Object__proto_: ()proto: t_cancelAction: ()cleanupAction: ()oncancel: nullconstructor: (e,n)proto: Object__proto: Object__defineGetter__: defineGetter()arguments: nullcaller: nulllength: 2name: "defineGetter"proto: ()defineSetter: defineSetter()lookupGetter: lookupGetter()lookupSetter: lookupSetter()constructor: Object()hasOwnProperty: hasOwnProperty()isPrototypeOf: isPrototypeOf()propertyIsEnumerable: propertyIsEnumerable()toLocaleString: toLocaleString()toString: toString()valueOf: valueOf()get proto: get proto()set proto: set proto()arguments: nullcaller: nulllength: 1name: "set proto"proto: ()

Running the contributed command:'projectManager.listProjects' failed. //Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/workbench.main.js:90
e.doShow @ //Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/workbench.main.js:90

Project Manager is not working

I've installed project manager on a pristine vscode-insider copy, and while running Project Manager: Edit Projects or Project Manager: List Projects, I only get the No projects saved yet! error. I manually created a file projects.json in the default directory, but no luck.

It used to work without any hitch earlier. I reinstalled vscode-insider into this new computer and am not able to get this plugin running at all.

Load project list from directory

Great extension! ๐Ÿ‘

Having a lot of different projects to switch between (well over 100), I would love a feature that allows me to provide a path and have the extension automatically scan that recursively and add all folders with a .vscode subdirectory to the projects list. Perhaps the path(s) to scan could be entered in the projects.json some way, so the projects are updated automatically?

New Install - No projects saved yet

Hi

Just installed your extension with Code 1.5.3
When I try run Edit Projects, to edit Projects.json, it does not open the json file but rather just states "No projects saved yet"

What am i doing wrong? (Total nube i know)

Does not work if started from `code.exe`

If I open Code using Window Shortcut (i.e. task icon or start menu icon), it runs code.exe and in that case, when I try to open project, it does not work.

If I start Code from command line, then it works.

Don't know if it is related to this:
microsoft/vscode#5064

Add opened projects/folders history

I think it would be useful to have opend project history. And sometimes you open some temporary folder/project that you actually don't won't to save but it maybe needed to open it again, history would help much in this case.

what do you think?

New command "Load"?!

Hey there, nice extension, i realy like it and use it much.
But thats my problem, i got so many projects thats it not easy to find the specific one on the first sight.

How about a new command like "Load" where you can type the first few letters, and the list is just showing Projects where the name starts with or contain "xyz"?

No need for seperate command list with the optional parameter "ProjectName contains $string" would be okay, too =)

what do you think about this?

"You must define a name for the project" when saving

  1. Installed extension for the first time, and restarted.
  2. Selected "Save Project".
  3. Typed name and hit Enter.
  4. Got the message "You must define a name for the project" (flagged as warning, though it's actually an error).
  5. Nothing was saved.

screen shot 2016-09-08 at 16 23 56

Version 0.9.1 on VSCode 1.5.

Contextual Structure for Projects

The are some issues related with this one, but not seems the same goal.

I work in several projects that are related in some way. There are two frameworks with many sub projects, for example. I could say that I work in different contexts and the projects are differents in theses contexts, so it will be nice if I could change my current context and the projects availables in this context.

In other words, I am suggesting an project.json with this format:

[
  {
     "label": "awesome-framework",
     "projects": [
       {
          "label": "core",
          "description": "C:\\awesome-framework\core"
       }, 
       {
          "label": "ui",
          "description": "C:\\awesome-framework\ui"
       }
    ]
  },
  {
     "label": "wonderful-framework",
     "projects": [
       {
          "label": "core",
          "description": "C:\\wonderful-framework\core"
       }, 
       {
          "label": "ui",
          "description": "C:\\wonderful-framework\ui"
       }
    ]
  },
  {
     "label": "personal",
     "projects": [
       {
          "label": "resume",
          "description": "C:\\personal\resume"
       }, 
       {
          "label": "game",
          "description": "C:\\personal\game"
       }
    ]
  }

]

And, to usage, there will be another keyboard shortcut to change contexts. So I start my day, choose my context with alt+shift+c and along the day I can change my projects with alt+shift+p. Maybe I little bit crazy, but I think it will be useful for whom works in more than one company.

OS X installation instructions unclear

I managed to get it working using the second approach in the README.

In Mac OS X, first try the same Windows approach.

really isn't that clear. Would be better with a clear example.

Indicate Code path

Allow to indicate the full path of Code app, in the case that code is not in PATH

Conditionally open a new project in the current window, or a new window

I'm working on several projects during a day, and the possibility to switch between them is quite vital (thanks btw! ๐Ÿ˜„ ). I prefer to work on a single project at a time if I can, but a new feature might touch several of these projects so that I will need to have them all open in separate windows.

Thus, I would really like the ability to choose whether or not to open a new project in the current window, or in a new window, depending on whether the task I'm working on extends over several projects or not.
There's already the projectManager.openInNewWindow setting that partly solves the issue I'm having, but I would like to make this decision when I'm opening a new project.
I guess #50 could also solve the problem I'm having, but that might take a while.

Out of the top of my head I can come up with two different approaches to configure this (might also be beneficial with some new settings to configure whether you want this behavior or not):

  1. A new shortcut, e.g. Ctrl+Shift+Alt+P that opens a new project in the same window, and Shift+Alt+P to open a new project in a new window (I prefer this).
  2. A pop-up that asks whether to open in a new window or not (Intellij, as an example, does this by default).

What do you think?

Wrong example path / no error message

Your example configuratation uses
C:\\Program Files\\ ...

Maybe it is just me, but VS Code and VS Code Insiders are installed @ C:\\Program Files (x86)\\...
Nothing serious, but without an error message I was quite puzzled for some minutes.

p.s. love this extention! Thanks a lot.

As a user It would be nice to support relative paths

when setting the projects.json location you have the option to set that in the workspace settings in .vs instead of in the user settings. It would be nice to support relative paths from there so ./../ sets the projects.json in the root folder of the current project. If you have a flag projects.relative: true then you could store the project location relative to the projects.json file. The use case it would support: direct opening of git sub-modules inside and outside the current workspace environment. and the ability to save the current workspace project in the git repo so all collaborators can share the same projects setup. Let me know what you think. Great extension btw kudos.

Options in sortList comment

In settings, the sorting possible values could be included in the comment.

For example:

// Project Manager Configuration

    // List the projects sorted by... (Saved, Name, Path, Recent)
    "projectManager.sortList": "Name",

Project switching does not work

Hi, I have Project Manage 0.4.1 installed on VS Code 0.10.8 for Mac. When I choose List Project in command pallete and confirm selected project by enter or by click, nothing happens.

Error opening project with spaces in the path

If the project path has spaces, like C:\Temp\Another Folder, instead of opening the project, it will be added (created) two files, named Another and Folder to the current Code instance.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.