A project manager that lets you add, edit and remove groups and projects as well as switching between them.
This package consumes the following services:
README
Table Of Contents
- Introduction
- Installation
- Features
- Shortcuts
- Settings
- Local File manipulation
- Contributors
- Contacts
- A Special Thank You!
Introduction
This is a package built for and by the Atom community. For contribution read below.
This package has grown so much over the last year that I felt the need to make it more stable and community friendly. And this required a more deep refactor with lots of new ideas and improvements, also huge amount of β€οΈ and π¦.
So here it is! Enjoy and contribute! π
Please keep in mind that after Atom
1.17.0
some functionalities changed, and implementations of this package are still being tested for stability.
Installation
In a terminal / command line write the following line apm install project-viewer
.
Or just find the package by accessing the menu Atom β Preferences... β Install and search for project-viewer.
Features
- Group nesting;
-
Infinite nesting of
groups
which can contain alsoprojects
; -
projects
can be at any level.
-
- Sidebar Left / Right (first or last) position;
- Auto hide sidebar with hover behavior;
- Resizable panel;
-
Double click to default width;
-
- Hide header for more space;
-
This is available through a config option, default is not autohide.
-
- Focus toggle;
-
Toggling focus will switch between current active element and the panel.
-
SelectListView
integration;-
Only shows
projects
.
-
- Traverse and select
projects
withup
anddown
keys; - Toggle collapse / expand of
groups
withleft
andright
keys; status-bar
with theproject
's' breadcrumb path;- Drag & Drop
groups
andprojects
;- Drag and drop a
group
orproject
into agroup
will add it as a child; - Drag and drop a
group
orproject
into anproject
will add it as sibling of the dropped item; - Drag and drop a
group
orproject
into a clear space in the panel will add it as a root child; - Order dragged
group
/project
accordingly with droppedgroup
sorting.
- Drag and drop a
- Open the local database file for direct editing;
- Old database schemas conversion tools;
- Backup services (GitHub's private gist);
- Editor for
groups
/projects
creation and update;- Create, update and remove
group
orproject
; - Automatic set it's name according to first path base name added;
- Batch operation on a
project
creation;-
Ability to create individual
projects
when more than one path is provided; -
Each project will automatically have it's name set to it's path base name.
-
- Filtering icons;
- List of icons in editor as only icons or icon and description;
-
This is available through a config option, default is icon and description.
-
- Sort children
groups
/projects
.-
Sorting root
groups
/projects
is done through a config option.
-
- Create, update and remove
- Context menu for delete, update and create new
group
orproject
;-
Create option is only available in
groups
or theroot
.
-
- Show the given path in a file manager. (in
finder
orexplorer
's alike'); - Empty
groups
and / orprojects
list message; - Custom colors for
groups
andprojects
; - Custom colors for main title, for hovering on a
project
and for selectedproject
; - Option to open a
project
in a new window or vice versa;-
This is available through a config option which will switch between what is the primary option, defaults to open in same window;
-
Context menu switching also available.
-
- Elevate current opened folders in
tree-view
to aproject
; Add Project Folder
andRemove Project Folder
will update current selected project as well;- Keep context when switching from
projects
.-
This is available through a config option, default is switch contexts.
-
Shortcuts
shift-ctrl-alt-c
toggles sidebar autohide;shift-ctrl-alt-v
toggles sidebar visibility;shift-ctrl-alt-n
open the editor tab;shift-ctrl-alt-m
toggle focus from active panel and the sidebar;shift-ctrl-alt-l
toggle the select list modal;
Settings
Settings | Type | Description | Default |
---|---|---|---|
visibilityOption |
String |
Define what would be the default action for project-viewer visibility on startup. | Display on startup |
visibilityActive |
Boolean |
Relative to the interaction option selected above. | true |
panelPosition |
String |
Position the panel to the left or right of the main pane. | Right |
autoHide |
Boolean |
Panel has auto hide with hover behavior. | false |
hideHeader |
Boolean |
You can have more space for the list by hiding the header. | false |
keepContext |
Boolean |
When switching from items, if set to true , will keep current context. Also will not save contexts between switching. |
false |
openNewWindow |
Boolean |
Always open items in a new window. | false |
statusBar |
Boolean |
Will show the breadcrumb to the current opened project in the status-bar . |
false |
customWidth |
Integer |
Define a custom width for the panel. double clicking on the resizer will reset the width |
200 |
customHotZone |
Integer |
Cursor movement within this width will make a hidden panel appear | 20 |
rootSortBy |
Array |
Sets the root sort by. | position |
onlyIcons |
Boolean |
Will show only the icons in the icon's list | true |
customPalette |
String |
Custom palette to use on editor | #F1E4E8, #F7B05B, #595959, #CD5334, #EDB88B, #23282E, #263655, #F75468, #FF808F, #FFDB80, #292E1E, #248232, #2BA84A, #D8DAD3, #FCFFFC, #8EA604, #F5BB00, #EC9F05, #FF5722, #BF3100 |
customSelectedColor |
String |
Set custom selected project color | '' |
customHoverColor |
String |
Set custom hover project color | '' |
customTitleColor |
String |
Set custom main title color | '' |
packagesReload |
String |
List of packages to reload | status-bar, linter, linter-ui-default |
disclaimer |
Object |
Show release notes on startup | true |
Keep in mind that this package uses Atom's Storage to save all groups and projects. It is wise to save it to the cloud (ex: you can import and export a private Gist through this package!).
Local File manipulation
Change it at your own risk! π
Group Schema
Parameter | Type | Description | Default | Required |
---|---|---|---|---|
type |
String |
The type of the model | group |
true |
name |
String |
The name of the project | In theory... any string / emoji | true |
sortBy |
String |
Sorting of the nested groups and projects |
Possible options are position , reserve-position , alphabetically and reverse-alphabetically |
true |
icon |
String |
Custom icon octicons or devicons |
'' |
false |
color |
String |
Custom color | '' |
false |
expanded |
Boolean |
group is collapsed or expanded |
false |
true |
list |
Array |
An array of models (group or project |
[] |
true |
Project Schema
Parameter | Type | Description | Default | Required |
---|---|---|---|---|
type |
String |
The type of the model | project |
true |
name |
String |
The name of the project | In theory... any strj g / emoji | true |
icon |
String |
Custom icon octicons or devicons |
'' |
false |
color |
String |
Custom color | '' |
false |
devMode |
Boolean |
Not working for now | false |
false |
config |
Object |
Not working for now | {} |
false |
paths |
Array |
An array of the root files beloging to the project | [] |
true |
Contributors
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!
If you feel you were left out, just shout!
Contacts
You can follow me on Twitter
A Special Thank You!
I thank you all for giving such great feedback! π» & π» for everyone.