atom-project-viewerProject Viewer - An Atom's package
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
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!