예제 #1
0
파일: messages.py 프로젝트: tek/proteome
from ribosome.machine import message

Commit = message('Commit', varargs='projects')
CommitCurrent = message('CommitCurrent')
HistorySwitch = message('HistorySwitch', 'index')
HistorySwitchFile = message('HistorySwitchFile', 'path', 'id')
HistoryPrev = message('HistoryPrev')
HistoryNext = message('HistoryNext')
HistoryBufferPrev = message('HistoryBufferPrev')
HistoryBufferNext = message('HistoryBufferNext')
HistoryStatus = message('HistoryStatus')
HistoryLog = message('HistoryLog')
HistoryBrowse = message('HistoryBrowse')
HistoryFileBrowse = message('HistoryBrowse', opt_fields=(('path', ''),))
HistoryBrowseInput = message('HistoryBrowseInput', 'keyseq')
HistoryPick = message('HistoryPick', 'index')
HistoryRevert = message('HistoryRevert', 'index')
Redraw = message('Redraw')
QuitBrowse = message('QuitBrowse', 'buffer')
ExecPick = message('ExecPick', 'commit', 'executor', 'status')
RevertAbort = message('ExecPick', 'project', 'executor', 'status')
예제 #2
0
파일: main.py 프로젝트: tek/proteome
from fn import _

from ribosome.machine import may_handle, message
from ribosome.nvim import Buffer

from amino import List, Empty
from amino.lazy import lazy

from proteome.state import ProteomeComponent, ProteomeTransitions
from proteome.ctags import Ctags
from proteome.plugins.core import Save, Added, BufEnter, StageIV

Gen = message('Gen', 'project')
GenAll = message('GenAll')
Kill = message('Kill')
CurrentBuffer = message('CurrentBuffer')


class CtagsTransitions(ProteomeTransitions):

    @property
    def ctags(self) -> Ctags:
        return self.machine.ctags  # type: ignore

    @property
    def _tags_file_name(self):
        return '.tags'

    @may_handle(StageIV)
    def stage_4(self):
        return GenAll(), CurrentBuffer()
예제 #3
0
파일: test_plug.py 프로젝트: tek/proteome
from toolz import dicttoolz

from ribosome.machine import may_handle, message

from proteome.state import ProteomeComponent

Do = message('Do', 'msg')


class Plugin(ProteomeComponent):
    _data_type = dict

    @property
    def title(self):
        return 'test_plug'

    @may_handle(Do)
    def doit(self, env: dict, msg):
        return dicttoolz.merge(env, {msg.msg: msg.msg})


__all__ = ['Plugin']
예제 #4
0
파일: main.py 프로젝트: tek/proteome
                                               HistorySwitchFile,
                                               CommitCurrent)
from proteome.plugins.history.data import History, HistoryT, HistoryState
from proteome.plugins.history.process import HistoryGit
from proteome.plugins.history.patch import Patch


class BrowseState(Record):
    repo = field(Repo)
    current = field(int)
    commits = lazy_list_field()
    buffer = field(ScratchBuffer)
    selected = dfield(0)
    path = maybe_field(Path)

Init = message('Init')


class BrowseTransitions(ProteomeTransitions):

    @property
    def buffer(self):
        return self.data.buffer.proxy

    @lazy
    def content(self):
        sel = self.data.selected
        return List.wrap(enumerate(self.data.commits[:sel + 20]))\
            .flat_smap(lambda i, a: a.browse_format(i == sel))

    @property
예제 #5
0
파일: message.py 프로젝트: tek/proteome
from ribosome.machine import message, json_message

StageI = message('StageI')
StageII = message('StageII')
StageIII = message('StageIII')
StageIV = message('StageIV')
Add = message('Add', 'project')
RemoveByIdent = message('RemoveByIdent', 'ident')
Create = message('Create', 'name', 'root')
Next = message('Next')
Prev = message('Prev')
SetProject = message('SetProject', 'ident')
SetProjectIdent = message('SetProjectIdent', 'ident')
SetProjectIndex = message('SetProjectIndex', 'index')
SwitchRoot = message('SwitchRoot', opt_fields=(('notify', True),))
Save = message('Save')
Added = message('Added', 'project')
Removed = message('Removed', 'project')
ProjectChanged = message('ProjectChanged', 'project')
BufEnter = message('BufEnter', 'buffer')
Initialized = message('Initialized')
MainAdded = message('MainAdded')
Show = message('Show', varargs='names')
AddByParams = json_message('AddByParams', 'ident')
CloneRepo = json_message('CloneRepo', 'uri')

__all__ = ('StageI', 'StageII', 'StageIII', 'StageIV', 'Add', 'RemoveByIdent',
           'Create', 'Next', 'Prev', 'SetProject', 'SetProjectIdent',
           'SetProjectIndex', 'SwitchRoot', 'Save', 'Added', 'Removed',
           'ProjectChanged', 'BufEnter', 'Initialized', 'MainAdded', 'Show',
           'AddByParams', 'CloneRepo')