mirror of
https://github.com/wassname/nvatom.git
synced 2026-09-11 12:30:45 +08:00
Compare commits
3
Commits
feature-30
..
v0.8.2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cc8a780436 | ||
|
|
431b929208 | ||
|
|
61d071c15a |
@@ -10,7 +10,7 @@ class NotationalVelocityView extends SelectListView
|
|||||||
@initializedAt = new Date()
|
@initializedAt = new Date()
|
||||||
super
|
super
|
||||||
@addClass('nvatom from-top overlay')
|
@addClass('nvatom from-top overlay')
|
||||||
@rootDirectory = atom.config.get('nvatom.directory')
|
@rootDirectory = fs.normalize(atom.config.get('nvatom.directory'))
|
||||||
unless fs.existsSync(@rootDirectory)
|
unless fs.existsSync(@rootDirectory)
|
||||||
throw new Error("The given directory #{@rootDirectory} does not exist. "
|
throw new Error("The given directory #{@rootDirectory} does not exist. "
|
||||||
+ "Set the note directory to the existing one from Settings.")
|
+ "Set the note directory to the existing one from Settings.")
|
||||||
@@ -38,6 +38,33 @@ class NotationalVelocityView extends SelectListView
|
|||||||
@prevCursorPosition = currCursorPosition
|
@prevCursorPosition = currCursorPosition
|
||||||
return isCursorProceeded
|
return isCursorProceeded
|
||||||
|
|
||||||
|
selectItem: (filteredItems, filterQuery) ->
|
||||||
|
isCursorProceeded = @isCursorProceeded()
|
||||||
|
|
||||||
|
for item in filteredItems
|
||||||
|
if item.title.toLowerCase() is filterQuery.toLowerCase()
|
||||||
|
# autoselect
|
||||||
|
n = filteredItems.indexOf(item) + 1
|
||||||
|
@selectItemView(@list.find("li:nth-child(#{n})"))
|
||||||
|
return
|
||||||
|
|
||||||
|
for item in filteredItems
|
||||||
|
if item.title.toLowerCase().startsWith(filterQuery.toLowerCase()) and isCursorProceeded
|
||||||
|
# autocomplete
|
||||||
|
@skipPopulateList = true
|
||||||
|
editor = @filterEditorView.model
|
||||||
|
editor.setText(filterQuery + item.title.slice(filterQuery.length))
|
||||||
|
editor.selectLeft(item.title.length - filterQuery.length)
|
||||||
|
|
||||||
|
# autoselect
|
||||||
|
n = filteredItems.indexOf(item) + 1
|
||||||
|
@selectItemView(@list.find("li:nth-child(#{n})"))
|
||||||
|
|
||||||
|
filter: (filterQuery) ->
|
||||||
|
if (filterQuery is "") or (filterQuery is undefined)
|
||||||
|
return @docQuery.documents
|
||||||
|
return @docQuery.search(filterQuery)
|
||||||
|
|
||||||
getFilterKey: ->
|
getFilterKey: ->
|
||||||
'filetext'
|
'filetext'
|
||||||
|
|
||||||
@@ -109,73 +136,24 @@ class NotationalVelocityView extends SelectListView
|
|||||||
selectedText = editor.getSelectedText()
|
selectedText = editor.getSelectedText()
|
||||||
return fullText.substring(0, fullText.length - selectedText.length)
|
return fullText.substring(0, fullText.length - selectedText.length)
|
||||||
|
|
||||||
filterByTitle: (filterQuery) ->
|
|
||||||
if (filterQuery is "") or (filterQuery is undefined)
|
|
||||||
return []
|
|
||||||
filterQuery = filterQuery.toLowerCase()
|
|
||||||
matchingNotes = []
|
|
||||||
filteredNotes = []
|
|
||||||
for note in @docQuery.documents
|
|
||||||
title = note.title.toLowerCase()
|
|
||||||
if title is filterQuery
|
|
||||||
matchingNotes.push(note)
|
|
||||||
else if filteredNotes.length < @maxItems and title.startsWith(filterQuery)
|
|
||||||
filteredNotes.push(note)
|
|
||||||
notes = matchingNotes.concat(filteredNotes)
|
|
||||||
if notes.length > @maxItems
|
|
||||||
notes = notes.slice(0, @maxItems)
|
|
||||||
return notes
|
|
||||||
|
|
||||||
filterByLunr: (filterQuery) ->
|
|
||||||
notes = []
|
|
||||||
if (filterQuery is "") or (filterQuery is undefined)
|
|
||||||
notes = @docQuery.documents
|
|
||||||
else
|
|
||||||
notes = @docQuery.search(filterQuery)
|
|
||||||
if notes.length > @maxItems
|
|
||||||
notes = notes.slice(0, @maxItems)
|
|
||||||
return notes
|
|
||||||
|
|
||||||
populateList: ->
|
populateList: ->
|
||||||
filterQuery = @getFilterQuery()
|
filterQuery = @getFilterQuery()
|
||||||
notesByTitle = @filterByTitle(filterQuery)
|
filteredItems = @filter(filterQuery)
|
||||||
notesByLunr = @filterByLunr(filterQuery)
|
|
||||||
isCursorProceeded = @isCursorProceeded()
|
|
||||||
|
|
||||||
@list.empty()
|
@list.empty()
|
||||||
if notesByTitle.length + notesByLunr.length == 0
|
if filteredItems.length
|
||||||
@setError(@getEmptyMessage(@docQuery.documents.length, 0))
|
@setError(null)
|
||||||
return
|
|
||||||
|
|
||||||
@setError(null)
|
for i in [0...Math.min(filteredItems.length, @maxItems)]
|
||||||
for note in notesByTitle
|
item = filteredItems[i]
|
||||||
itemView = $(@viewForItem(note))
|
itemView = $(@viewForItem(item))
|
||||||
itemView.data('select-list-item', note)
|
itemView.data('select-list-item', item)
|
||||||
@list.append(itemView)
|
@list.append(itemView)
|
||||||
|
|
||||||
if notesByTitle.length
|
@selectItem(filteredItems, filterQuery)
|
||||||
# autoselect
|
|
||||||
@selectItemView(@list.find("li:nth-child(1)"))
|
|
||||||
|
|
||||||
#autocomplete
|
else
|
||||||
note = notesByTitle[0]
|
@setError(@getEmptyMessage(@docQuery.documents.length, filteredItems.length))
|
||||||
if note.title.toLowerCase() is filterQuery.toLowerCase() or isCursorProceeded
|
|
||||||
@skipPopulateList = true
|
|
||||||
editor = @filterEditorView.model
|
|
||||||
editor.setText(filterQuery + note.title.slice(filterQuery.length))
|
|
||||||
editor.selectLeft(note.title.length - filterQuery.length)
|
|
||||||
|
|
||||||
if @list.length >= @maxItems
|
|
||||||
return
|
|
||||||
|
|
||||||
for note in notesByLunr
|
|
||||||
if @list.length >= @maxItems
|
|
||||||
break
|
|
||||||
if filterQuery?.length and note.title.toLowerCase().startsWith(filterQuery.toLowerCase())
|
|
||||||
continue
|
|
||||||
itemView = $(@viewForItem(note))
|
|
||||||
itemView.data('select-list-item', note)
|
|
||||||
@list.append(itemView)
|
|
||||||
|
|
||||||
schedulePopulateList: ->
|
schedulePopulateList: ->
|
||||||
unless @skipPopulateList
|
unless @skipPopulateList
|
||||||
|
|||||||
@@ -85,7 +85,7 @@ module.exports =
|
|||||||
@autosave(paneItem) for paneItem in atom.workspace.getPaneItems()
|
@autosave(paneItem) for paneItem in atom.workspace.getPaneItems()
|
||||||
|
|
||||||
ensureNoteDirectory: ->
|
ensureNoteDirectory: ->
|
||||||
noteDirectory = atom.config.get('nvatom.directory')
|
noteDirectory = fs.normalize(atom.config.get('nvatom.directory'))
|
||||||
packagesDirectory = path.join(process.env.ATOM_HOME, 'packages')
|
packagesDirectory = path.join(process.env.ATOM_HOME, 'packages')
|
||||||
defaultNoteDirectory = path.join(packagesDirectory, 'nvatom', 'notebook')
|
defaultNoteDirectory = path.join(packagesDirectory, 'nvatom', 'notebook')
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "nvatom",
|
"name": "nvatom",
|
||||||
"main": "./lib/notational-velocity",
|
"main": "./lib/notational-velocity",
|
||||||
"version": "0.8.1",
|
"version": "0.8.2",
|
||||||
"private": true,
|
"private": true,
|
||||||
"contributors": [
|
"contributors": [
|
||||||
"Seongjae Lee <seongjae@gmail.com>",
|
"Seongjae Lee <seongjae@gmail.com>",
|
||||||
|
|||||||
Reference in New Issue
Block a user