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()
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()