def __init__(self, transferMethod, args):
        threading.Thread.__init__(self)
        self.server = SublimeSocketServer()

        self.setupThread(transferMethod, args)
示例#2
0
    def __init__(self, transferMethod, args):
        threading.Thread.__init__(self)
        self.server = SublimeSocketServer()

        self.setupThread(transferMethod, args)
class SublimeSocketThread(threading.Thread):
    def __init__(self, transferMethod, args):
        threading.Thread.__init__(self)
        self.server = SublimeSocketServer()

        self.setupThread(transferMethod, args)


  # called by thread.start
    def run(self):
        self.server.spinupTransfer()


    def setupThread(self, transferMethod, args):
        if transferMethod in SublimeSocketAPISettings.TRANSFER_METHODS:   
            params = sublime.load_settings("SublimeSocket.sublime-settings").get(transferMethod)
                 
            for case in PythonSwitch(transferMethod):
                if case(SublimeSocketAPISettings.WEBSOCKET_SERVER):
                    
                    if "runTests" in args:
                        Openhtml.openSublimeSocketTest(params)
                        
                        testSuiteFilePath = sublime.packages_path() + "/"+SublimeSocketAPISettings.MY_PLUGIN_PATHNAME+"/"+sublime.load_settings("SublimeSocket.sublime-settings").get('testSuiteFilePath')

                        
                        def runTests():
                          self.server.api.runTests({SublimeSocketAPISettings.RUNTESTS_PATH:testSuiteFilePath}, "sublimesockettest")
                        
                        self.server.appendOnConnectedTriggers(runTests)
                    
                    break

            
            self.server.setupTransfer(transferMethod, params)



    def restartServer(self):
        # restart means reset @ SublimeSocketServer.
        self.server.resetServer()



    def showKVS(self):
        self.server.showAllKeysAndValues()

    def flushKVS(self):
        self.server.clearAllKeysAndValues()


  # send eventName and data to server. gen results from here for view-oriented-event-fireing.
    def viewEmitViaSublime(self, eventName, view):
        if self.server:

            if not view:
                return
                
            # avoid empty-file
            if view.is_scratch():
                # print "scratch buffer."
                return

            eventParam = self.server.api.editorAPI.generateViewInfo(
                view, None, None,
                SublimeSocketAPISettings.REACTOR_VIEWKEY_VIEWSELF,
                SublimeSocketAPISettings.REACTOR_VIEWKEY_PATH,
                SublimeSocketAPISettings.REACTOR_VIEWKEY_NAME,
                SublimeSocketAPISettings.REACTOR_VIEWKEY_SELECTEDS,
                SublimeSocketAPISettings.REACTOR_VIEWKEY_ISEXIST
            )
            
            emitIdentity = str(uuid.uuid4())
            eventParam[SublimeSocketAPISettings.REACTOR_VIEWKEY_EMITIDENTITY] = emitIdentity

            self.server.api.fireReactor(SublimeSocketAPISettings.REACTORTYPE_VIEW, eventName, eventParam)


    def getReactorDataFromServer(self, eventName, view):
        if self.server:

            # avoid empty-file
            if view.is_scratch():
                return
                
            elif not view.file_name():
                return

            view_file_name = view.file_name()

            if view_file_name:
                return self.server.api.consumeCompletion(view_file_name, eventName)
            
    def teardownServer(self):
        # close the SublimeSocketServer and this thread.
        self.server.teardownServer()
示例#4
0
class SublimeSocketThread(threading.Thread):
    def __init__(self, transferMethod, args):
        threading.Thread.__init__(self)
        self.server = SublimeSocketServer()

        self.setupThread(transferMethod, args)

# called by thread.start

    def run(self):
        self.server.spinupTransfer()

    def setupThread(self, transferMethod, args):
        if transferMethod in SublimeSocketAPISettings.TRANSFER_METHODS:
            params = sublime.load_settings(
                "SublimeSocket.sublime-settings").get(transferMethod)

            for case in PythonSwitch(transferMethod):
                if case(SublimeSocketAPISettings.WEBSOCKET_SERVER):

                    if "runTests" in args:
                        Openhtml.openSublimeSocketTest(params)

                        testSuiteFilePath = sublime.packages_path(
                        ) + "/" + SublimeSocketAPISettings.MY_PLUGIN_PATHNAME + "/" + sublime.load_settings(
                            "SublimeSocket.sublime-settings").get(
                                'testSuiteFilePath')

                        def runTests():
                            self.server.api.runTests(
                                {
                                    SublimeSocketAPISettings.RUNTESTS_PATH:
                                    testSuiteFilePath
                                }, "sublimesockettest")

                        self.server.appendOnConnectedTriggers(runTests)

                    break

            self.server.setupTransfer(transferMethod, params)

    def restartServer(self):
        # restart means reset @ SublimeSocketServer.
        self.server.resetServer()

    def showKVS(self):
        self.server.showAllKeysAndValues()

    def flushKVS(self):
        self.server.clearAllKeysAndValues()

# send eventName and data to server. gen results from here for view-oriented-event-fireing.

    def viewEmitViaSublime(self, eventName, view):
        if self.server:

            if not view:
                return

            # avoid empty-file
            if view.is_scratch():
                # print "scratch buffer."
                return

            eventParam = self.server.api.editorAPI.generateViewInfo(
                view, None, None,
                SublimeSocketAPISettings.REACTOR_VIEWKEY_VIEWSELF,
                SublimeSocketAPISettings.REACTOR_VIEWKEY_PATH,
                SublimeSocketAPISettings.REACTOR_VIEWKEY_NAME,
                SublimeSocketAPISettings.REACTOR_VIEWKEY_SELECTEDS,
                SublimeSocketAPISettings.REACTOR_VIEWKEY_ISEXIST)

            emitIdentity = str(uuid.uuid4())
            eventParam[SublimeSocketAPISettings.
                       REACTOR_VIEWKEY_EMITIDENTITY] = emitIdentity

            self.server.api.fireReactor(
                SublimeSocketAPISettings.REACTORTYPE_VIEW, eventName,
                eventParam)

    def getReactorDataFromServer(self, eventName, view):
        if self.server:

            # avoid empty-file
            if view.is_scratch():
                return

            elif not view.file_name():
                return

            view_file_name = view.file_name()

            if view_file_name:
                return self.server.api.consumeCompletion(
                    view_file_name, eventName)

    def teardownServer(self):
        # close the SublimeSocketServer and this thread.
        self.server.teardownServer()