]> git.gir.st - VimFx.git/blob - extension/lib/public.coffee
Merge pull request #512 from akhodakivskiy/multi-process
[VimFx.git] / extension / lib / public.coffee
1 ###
2 # Copyright Simon Lydell 2015.
3 #
4 # This file is part of VimFx.
5 #
6 # VimFx is free software: you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation, either version 3 of the License, or
9 # (at your option) any later version.
10 #
11 # VimFx is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 # GNU General Public License for more details.
15 #
16 # You should have received a copy of the GNU General Public License
17 # along with VimFx. If not, see <http://www.gnu.org/licenses/>.
18 ###
19
20 # This file provides VimFx’s public API (defined in api.coffee) for public
21 # consumption.
22
23 EXPORTED_SYMBOLS = ['getAPI']
24
25 # Will be set by main.coffee. By passing the API in we make sure that all
26 # consumers get an up-to-date version. It is also needed to be able to access
27 # the global `VimFx` instance.
28 api = null
29
30 callbacks = []
31
32 setAPI = (passed_api) ->
33 api = passed_api
34 callback(api) for callback in callbacks
35 callbacks.length = 0
36
37 getAPI = (callback) ->
38 if api == null
39 # If this module is imported before main.coffee has set `api`, push the
40 # callback to the queue.
41 callbacks.push(callback)
42 else
43 callback(api)
Imprint / Impressum