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.0some 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
groupswhich can contain alsoprojects;
-
projectscan 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.
-
-
SelectListViewintegration;
-
Only shows
projects.
-
- Traverse and select
projectswithupanddownkeys; - Toggle collapse / expand of
groupswithleftandrightkeys; -
status-barwith theproject's' breadcrumb path; - Drag & Drop
groupsandprojects;
- Drag and drop a
grouporprojectinto agroupwill add it as a child; - Drag and drop a
grouporprojectinto anprojectwill add it as sibling of the dropped item; - Drag and drop a
grouporprojectinto a clear space in the panel will add it as a root child; - Order dragged
group/projectaccordingly with droppedgroupsorting.
- 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/projectscreation and update;
- Create, update and remove
grouporproject; - Automatic set it's name according to first path base name added;
- Batch operation on a
projectcreation;
-
Ability to create individual
projectswhen 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/projectsis done through a config option.
-
- Create, update and remove
- Context menu for delete, update and create new
grouporproject;
-
Create option is only available in
groupsor theroot.
-
- Show the given path in a file manager. (in
finderorexplorer's alike'); - Empty
groupsand / orprojectslist message; - Custom colors for
groupsandprojects; - Custom colors for main title, for hovering on a
projectand for selectedproject; - Option to open a
projectin 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-viewto aproject; -
Add Project FolderandRemove Project Folderwill 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-ctoggles sidebar autohide; -
shift-ctrl-alt-vtoggles sidebar visibility; -
shift-ctrl-alt-nopen the editor tab; -
shift-ctrl-alt-mtoggle focus from active panel and the sidebar; -
shift-ctrl-alt-ltoggle 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!
🍻
🐻
