mirror of
https://github.com/rizzatti/dash.vim.git
synced 2026-02-27 18:23:48 +01:00
Remove processing of plist
This commit is contained in:
@@ -34,10 +34,6 @@ function! s:check_for_dash()
|
||||
call s:dummy()
|
||||
endfunction
|
||||
|
||||
function! dash#settings(...)
|
||||
call s:dummy()
|
||||
endfunction
|
||||
|
||||
finish
|
||||
endfunction
|
||||
"}}}
|
||||
@@ -109,27 +105,12 @@ function! dash#search(bang, ...) "{{{
|
||||
call add(keywords, keyword)
|
||||
endif
|
||||
endif
|
||||
call filter(keywords, 'index(s:cache.keywords(), v:val) != -1')
|
||||
call s:search(term, keywords)
|
||||
endfunction
|
||||
"}}}
|
||||
|
||||
function! dash#settings() "{{{
|
||||
redraw
|
||||
for profile in s:cache.profiles
|
||||
let docsets = join(map(copy(profile.docsets), "v:val.name"), ', ')
|
||||
echo 'Profile: ' . profile.name . '; Keyword: ' . profile.keyword .
|
||||
\ '; Docsets: ' . docsets
|
||||
endfor
|
||||
for docset in s:cache.docsets
|
||||
echo 'Docset: ' . docset.name . '; Keyword: ' . docset.keyword()
|
||||
endfor
|
||||
endfunction
|
||||
"}}}
|
||||
|
||||
function! s:add_buffer_keywords(keyword_list) "{{{
|
||||
let keywords = map(copy(a:keyword_list), 'get(s:aliases, v:val, v:val)')
|
||||
call filter(keywords, 'index(s:cache.keywords(), v:val) != -1')
|
||||
if exists('b:dash_keywords')
|
||||
call extend(b:dash_keywords, keywords)
|
||||
return
|
||||
|
||||
@@ -2,72 +2,15 @@
|
||||
" Author: José Otávio Rizzatti <zehrizzatti@gmail.com>
|
||||
" License: MIT
|
||||
|
||||
let s:docset = dash#docset#class
|
||||
let s:plist = funcoo#plist#module
|
||||
let s:profile = dash#profile#class
|
||||
|
||||
let s:class = funcoo#object#class.extend()
|
||||
let s:proto = {}
|
||||
|
||||
function! s:proto.constructor() dict abort "{{{
|
||||
call self._createDocsetList()
|
||||
call self._createDocsetPathMap()
|
||||
call self._createProfileList()
|
||||
let self._keywords = []
|
||||
endfunction
|
||||
"}}}
|
||||
|
||||
function! s:proto._createDocsetList() dict abort "{{{
|
||||
let docsetList = eval(s:plist.read('com.kapeli.dash docsets'))
|
||||
let docsets = []
|
||||
for docset in docsetList
|
||||
call add(docsets, s:docset.new(docset))
|
||||
endfor
|
||||
try
|
||||
call sort(docsets, s:docset.sort, s:docset)
|
||||
catch /^Vim\%((\a\+)\)\=:E118/
|
||||
endtry
|
||||
let self.docsets = docsets
|
||||
endfunction
|
||||
"}}}
|
||||
|
||||
function! s:proto._createDocsetPathMap() dict abort "{{{
|
||||
let paths = {}
|
||||
for docset in self.docsets
|
||||
let paths[docset.path] = docset
|
||||
endfor
|
||||
let self._pathMap = paths
|
||||
endfunction
|
||||
"}}}
|
||||
|
||||
function! s:proto._createProfileList() dict abort "{{{
|
||||
let profileList = eval(s:plist.read('com.kapeli.dash profiles'))
|
||||
let profiles = []
|
||||
for profile in profileList
|
||||
let triggers = get(profile, 'triggers', [])
|
||||
if !empty(triggers)
|
||||
for trigger in triggers
|
||||
if get(trigger, 'isKeywordTrigger')
|
||||
break
|
||||
endif
|
||||
endfor
|
||||
let keyword = get(trigger, 'keyword', '')
|
||||
let name = get(profile, 'name', 'No name')
|
||||
let docsets = map(get(profile, 'docsets', []), 'self._pathMap[v:val]')
|
||||
call add(profiles, s:profile.new(name, keyword, docsets))
|
||||
endif
|
||||
endfor
|
||||
let self.profiles = profiles
|
||||
endfunction
|
||||
"}}}
|
||||
|
||||
function! s:proto.keywords() dict abort "{{{
|
||||
if !empty(self._keywords)
|
||||
return self._keywords
|
||||
endif
|
||||
call extend(self._keywords, map(copy(self.profiles), "v:val.keyword"))
|
||||
call extend(self._keywords, map(copy(self.docsets), "v:val.keyword()"))
|
||||
call sort(self._keywords)
|
||||
return self._keywords
|
||||
endfunction
|
||||
"}}}
|
||||
|
||||
@@ -1,53 +0,0 @@
|
||||
" Description: Search Dash.app from Vim
|
||||
" Author: José Otávio Rizzatti <zehrizzatti@gmail.com>
|
||||
" License: MIT
|
||||
|
||||
let s:class = funcoo#object#class.extend()
|
||||
|
||||
function! s:class.sort(left, right) dict abort "{{{
|
||||
if a:left.name == a:right.name
|
||||
return 0
|
||||
endif
|
||||
return a:left.name > a:right.name ? 1 : -1
|
||||
endfunction
|
||||
"}}}
|
||||
|
||||
let s:proto = {}
|
||||
|
||||
let s:special_cases = {
|
||||
\ "Python 2:python" : 'python2',
|
||||
\ "Python 3:python" : 'python3',
|
||||
\ "Java SE7:java" : 'java7',
|
||||
\ "Java SE6:java" : 'java6',
|
||||
\ "Qt 5:qt" : 'qt5',
|
||||
\ "Qt 4:qt" : 'qt4',
|
||||
\ "Cocos3D:cocos2d" : 'cocos3d'
|
||||
\ }
|
||||
|
||||
function! s:proto.constructor(dict) dict abort "{{{
|
||||
let self.name = get(a:dict, 'docsetName', 'No name')
|
||||
let self.path = get(a:dict, 'docsetPath', '')
|
||||
let self._platform = get(a:dict, 'platform', '')
|
||||
let self._keyword = substitute(get(a:dict, 'keyword', ''), ':', '', '')
|
||||
call self._handleSpecialCases()
|
||||
endfunction
|
||||
"}}}
|
||||
|
||||
function! s:proto._handleSpecialCases() dict abort "{{{
|
||||
if !empty(self._keyword)
|
||||
return
|
||||
endif
|
||||
let key = join([self.name, self._platform], ':')
|
||||
let self._keyword = get(s:special_cases, key, '')
|
||||
endfunction
|
||||
"}}}
|
||||
|
||||
function! s:proto.keyword() dict abort "{{{
|
||||
let value = empty(self._keyword) ? self._platform : self._keyword
|
||||
return tolower(value)
|
||||
endfunction
|
||||
"}}}
|
||||
|
||||
call s:class.include(s:proto)
|
||||
|
||||
let dash#docset#class = s:class
|
||||
@@ -1,17 +0,0 @@
|
||||
" Description: Search Dash.app from Vim
|
||||
" Author: José Otávio Rizzatti <zehrizzatti@gmail.com>
|
||||
" License: MIT
|
||||
|
||||
let s:class = funcoo#object#class.extend()
|
||||
let s:proto = {}
|
||||
|
||||
function! s:proto.constructor(name, keyword, docsets) dict abort "{{{
|
||||
let self.name = a:name
|
||||
let self.keyword = tolower(substitute(a:keyword, ':', '', ''))
|
||||
let self.docsets = a:docsets
|
||||
endfunction
|
||||
"}}}
|
||||
|
||||
call s:class.include(s:proto)
|
||||
|
||||
let dash#profile#class = s:class
|
||||
@@ -53,16 +53,6 @@ else
|
||||
endif
|
||||
"}}}
|
||||
|
||||
"{{{ DashSettings command
|
||||
if exists(':DashSettings') == 2
|
||||
echohl WarningMsg
|
||||
echomsg 'dash.vim: could not create command DashSettings'
|
||||
echohl None
|
||||
else
|
||||
command -nargs=0 DashSettings call dash#settings()
|
||||
endif
|
||||
"}}}
|
||||
|
||||
if !exists('g:dash_autocommands')
|
||||
let g:dash_autocommands = 1
|
||||
call dash#autocommands()
|
||||
|
||||
Reference in New Issue
Block a user