def on_query_completions(self, view, prefix, locations):
      # helpers.log_info("--> " + __name__ + ": " + type(self).__name__ + "." + sys._getframe().f_code.co_name)
   
      # if (not helpers.is_a_gold_view(view)) or (len(prefix) < 4):
      #    return []
   
      # api = environment.getSwaggerAPI()
   
      # fullChoiceList = api.MMBrowserAPI.MMBrowserAPI_searchEntities(q=prefix).result()
   
      # result = []
      # for item in fullChoiceList:
      #    result.append((item['label'], item['label']))

      # print(result)

      # helpers.log_info("<-- " + __name__ + ": " + type(self).__name__ + "." + sys._getframe().f_code.co_name)

      # return result

      helpers.log_info("--> " + __name__ + ": " + type(self).__name__ + "." + sys._getframe().f_code.co_name)
   
      if not helpers.is_a_gold_view(view):
         return []

      moduleName = helpers.get_module_from_view(view)
      sourceCode = helpers.get_view_content(view).replace('\n', "\\r\\n")
      
      api = environment.getSwaggerAPI()
      tSuggestBody = api.get_model("tSuggestBody")
      tImplem = api.get_model("tImplem")

      rowcol = view.rowcol(locations[0])
      lineRegion = view.line(locations[0])
      lineContent = view.substr(lineRegion)
      lineInfo = { "lineContent": lineContent, "lineNumber": rowcol[0]+1, "ColumnNumber": rowcol[1]+1 }

      implem = { "name": moduleName, "ancestor": "", "content": sourceCode }

      suggestBody = tSuggestBody(implem=implem, lineInfo=lineInfo)

      fullChoiceList = api.ModuleDefAPI.ModuleDefAPI_Suggest(name=moduleName, body=suggestBody).result()

      result = []
      for item in fullChoiceList["items"]:
         if item['insertText'] == "":
            result.append((item["label"], item["label"]))
         else:
            result.append((item["label"], item["insertText"]))

      helpers.log_info("<-- " + __name__ + ": " + type(self).__name__ + "." + sys._getframe().f_code.co_name)

      if result == []:
         flag = 0
      else:
         flag = sublime.INHIBIT_WORD_COMPLETIONS

      return (result, flag)
   def run(self, edit, event=None, refresh=True):
      api = environment.getSwaggerAPI()

      implemModel = api.get_model("tImplem")
      content = helpers.get_view_content(self.view)
      moduleName = helpers.get_module_from_view(self.view)

      content = content.replace('\n', "\\r\\n")

      implem = implemModel(content=content, name=moduleName, ancestor="")

      res = api.ModuleDefAPI.ModuleDefAPI_Modify(name=moduleName, body=implem).result()

      actions.update_error_view(res['errors'], self.view)

      if len(res['errors']) == 0 and refresh:
         actions.update_content(self.view, res['content'])
Example #3
0
def get_module_content(callback, view=None):
   """ Retrieve module content using a view. The view defaults to current active view. """
   source = helpers.get_view_content(view)
   callback(source)