Skip to content

Commit

Permalink
Add function to sort alphabetically
Browse files Browse the repository at this point in the history
  • Loading branch information
warmdev committed Jun 17, 2018
1 parent 2bfa9fe commit c1b07e9
Show file tree
Hide file tree
Showing 5 changed files with 36 additions and 3 deletions.
3 changes: 2 additions & 1 deletion messages.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
{
"install": "messages/install.txt",
"0.1.1": "messages/0.1.1.txt"
"0.1.1": "messages/0.1.1.txt",
"0.1.2": "messages/0.1.2.txt"
}
10 changes: 10 additions & 0 deletions messages/0.1.2.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
0.1.2

* Added ability to sort outline alphabetically by setting or by command
- By setting: add the following line in settings and change the value to `true`:

```json
"outline_alphabetical": true,
```

- By command: press `Ctrl + Shift + P` and select `Outline: Toggle Sort`
16 changes: 14 additions & 2 deletions outline.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,25 @@ def run(self):
class OutlineRefreshCommand(TextCommand):
def run(self, edit, symlist=None, symkeys=None, path=None, to_expand=None, toggle=None):
self.view.erase(edit, Region(0, self.view.size()))
if self.view.settings().get('outline_alphabetical'):
symlist, symkeys = (list(t) for t in zip(*sorted(zip(symlist, symkeys))))
self.view.insert(edit, 0, "\n".join(symlist))
self.view.settings().set('symlist', symlist)
self.view.settings().set('symkeys', symkeys)
self.view.settings().set('current_file', path)
self.view.sel().clear()

class OutlineToggleSortCommand(TextCommand):
def run(self, edit):
sym_view = None
for v in self.view.window().views():
if u'𝌆' in v.name():
v.settings().set('outline_alphabetical', not v.settings().get('outline_alphabetical'))
sym_view = v

symlist = self.view.get_symbols()
refresh_sym_view(sym_view, symlist, self.view.file_name())

class OutlineEventHandler(EventListener):
def on_selection_modified(self, view):
if 'outline.hidden-tmLanguage' not in view.settings().get('syntax'):
Expand Down Expand Up @@ -95,5 +108,4 @@ def on_pre_save(self, view):
sym_view.settings().set('current_file', view.file_name())

symlist = view.get_symbols()

refresh_sym_view(sym_view, symlist, view.file_name())
refresh_sym_view(sym_view, symlist, view.file_name())
6 changes: 6 additions & 0 deletions outline.sublime-commands
Original file line number Diff line number Diff line change
Expand Up @@ -59,5 +59,11 @@
"command": "outline_close_sidebar",
"args": {
}
},
{
"caption": "Outline: Toggle Sort",
"command": "outline_toggle_sort",
"args": {
}
}
]
4 changes: 4 additions & 0 deletions outline.sublime-settings
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,10 @@
// false: a new view is created.
"outline_reuse_view": true,

// true: Enable alphabetical sort in output.
// false: default because of losing parent dependences.
"outline_alphabetical": false,

// How should be positioned the Browse Mode view opened when jumping
// "left": the default, open the view on the left
// "right": open the view on the right
Expand Down

0 comments on commit c1b07e9

Please sign in to comment.