Python sublime 模块,ENCODED_POSITION 实例源码

我们从Python开源项目中,提取了以下40个代码示例,用于说明如何使用sublime.ENCODED_POSITION

项目:PhaserSublimePackage    作者:PhaserEditor2D    | 项目源码 | 文件源码
def run(self, edit, **args):
    data = run_command(self.view, {"type": "definition", "lineCharPositions": True})
    if data is None: return
    file = data.get("file", None)
    if file is not None:
      # Found an actual definition
      row, col = self.view.rowcol(self.view.sel()[0].b)
      cur_pos = self.view.file_name() + ":" + str(row + 1) + ":" + str(col + 1)
      jump_stack.append(cur_pos)
      if len(jump_stack) > 50: jump_stack.pop(0)
      real_file = (os.path.join(get_pfile(self.view).project.dir, file) +
        ":" + str(data["start"]["line"] + 1) + ":" + str(data["start"]["ch"] + 1))
      sublime.active_window().open_file(real_file, sublime.ENCODED_POSITION)
    else:
      url = data.get("url", None)
      if url is None:
        sublime.error_message("Could not find a definition")
      else:
        webbrowser.open(url)
项目:KodiDevKit    作者:phil65    | 项目源码 | 文件源码
def run(self, edit):
        for region in self.view.sel():
            if not region.empty():
                self.view.insert(edit, region.begin(), self.view.substr(region))
                continue
            line_contents = self.view.substr(self.view.line(region))
            match = re.search(r'File "(.*?)", line (\d*), in .*', line_contents)
            if match:
                sublime.active_window().open_file("{}:{}".format(os.path.realpath(match.group(1)),
                                                                 match.group(2)),
                                                  sublime.ENCODED_POSITION)
                return
            match = re.search(r"', \('(.*?)', (\d+), (\d+), ", line_contents)
            if match:
                sublime.active_window().open_file("{}:{}:{}".format(os.path.realpath(match.group(1)),
                                                                    match.group(2),
                                                                    match.group(3)),
                                                  sublime.ENCODED_POSITION)
                return
项目:FlowIDE    作者:tptee    | 项目源码 | 文件源码
def run_async(self):
        result = None
        try:
            result = CLI(self.view).get_def()
        except InvalidContext:
            print('Invalid context')
            pass
        except Exception as e:
            display_unknown_error(self.view, e)
            return

        print(result)
        if not result or not result.get('path'):
            return

        sublime.active_window().open_file(
            result['path'] +
            ':' + str(result['line']) +
            ':' + str(result['start']),
            sublime.ENCODED_POSITION |
            sublime.TRANSIENT
        )
项目:Assembly-RGBDS    作者:michalisb    | 项目源码 | 文件源码
def run(self, edit, event):
        if self.symbol_details:
            view_path = self.symbol_details[0]
            focus_region = self.symbol_details[1]
            # collapse the region to a single point, the region start
            focus_region = sublime.Region(focus_region.begin(), focus_region.begin())

            # get the view with this path
            view = sublime.active_window().find_open_file(view_path)
            if view:
                self.showSymbol(view, focus_region)
            else:
                # weird issue, but unless we open the file with 'ENCODED_POSITION' it won't scroll afterwards
                # https://github.com/SublimeTextIssues/Core/issues/538
                view = sublime.active_window().open_file("%s:%d:%d" % (view_path, 1, 0), sublime.ENCODED_POSITION)

                def viewLoadedTimeout():
                    # we can run methods only on loaded views
                    if not view.is_loading():
                        self.showSymbol(view, focus_region)
                    else:
                        sublime.set_timeout(viewLoadedTimeout, 100)

                # open is asynchronous, wait for a bit and then try to focus
                sublime.set_timeout(viewLoadedTimeout, 100)
项目:EasyClangComplete    作者:niosus    | 项目源码 | 文件源码
def run(self, edit):
        """Run goto declaration command.

        Navigates to delcaration of entity located by current position
        of cursor.
        """
        if not Tools.is_valid_view(self.view):
            return
        config_manager = EasyClangComplete.view_config_manager
        if not config_manager:
            return
        location = config_manager.trigger_get_declaration_location(self.view)
        if location:
            loc = location.file.name
            loc += ":" + str(location.line)
            loc += ":" + str(location.column)
            log.debug("Navigating to declaration: %s", loc)
            sublime.active_window().open_file(loc, sublime.ENCODED_POSITION)
项目:sublimeTextConfig    作者:luoye-fe    | 项目源码 | 文件源码
def rename(self, edit: sublime.Edit) -> None:
        """Rename in the buffer
        """

        data = self.data
        if data['success'] is True:
            for filename, data in data['renames'].items():
                for line in data:
                    view = sublime.active_window().open_file(
                        '{}:{}:0'.format(filename, line['lineno']),
                        sublime.ENCODED_POSITION
                    )
                    while view.is_loading():
                        time.sleep(0.01)

                    lines = view.lines(sublime.Region(0, view.size()))
                    view.replace(edit, lines[line['lineno']], line['line'])

        self.data = None
项目:SourceKittenSubl    作者:Dan2552    | 项目源码 | 文件源码
def on_navigate(self, url):
        if self.view.is_popup_visible():
            self.view.hide_popup()
        filepath, line, offsets = url.split(":")
        column, length = offsets.split("-")
        new_view = self.view.window().open_file(url, sublime.ENCODED_POSITION)

        start_offset = int(column) - 1
        end_offset = start_offset + int(length)
        region = Region(start_offset, end_offset)

        # Add a highlight
        new_view.add_regions("highlight", [region], "comment")

        # Remove highlight after a second
        Timer(1.0, lambda: new_view.add_regions("highlight", [], "comment")).start()
项目:kiwi    作者:alpha1e0    | 项目源码 | 文件源码
def run(self, edit, **args):
        if not self._is_kiwilime_view:
            return

        point = current.point(self.view)

        file_name, lineno = get_file_location(self.view, point)
        if not file_name:
            return None

        if os.path.exists(file_name):
            file_loc = "{0}:{1}".format(file_name, lineno)
            self.view.window().open_file(file_loc, sublime.ENCODED_POSITION)
        else:
            show_error("File '{0}'' doses not exists.".format(
                file_name))
项目:sublime-flowtype    作者:Pegase745    | 项目源码 | 文件源码
def handle_process(self, returncode, stdout, error):
        """Handle the output from the threaded process."""
        if type(error) is bytes:
            error = error.decode('utf-8')

        if returncode != 0:
            logger.logger.error('get_def %s' % error)
            return

        logger.logger.debug(stdout)

        if stdout and stdout['path']:
            self.active_window.open_file(
                stdout['path'] +
                ':' + str(stdout['line']) +
                ':' + str(stdout['start']),
                sublime.ENCODED_POSITION |
                False
            )
        else:
            self.view.set_status('flow_type', 'Flow: no definition found')
项目:ToolTip-Helper    作者:doobleweb    | 项目源码 | 文件源码
def on_navigate(self, href):
        """ open the link in a new tab on web browser """
        if '$$$' in href:
            try:
                arr = href.split('$$$')
                file_name = arr[0].strip()
                location = arr[1].split(',')
                row = int(location[0].strip())
                col = int(location[1].strip())
                sublime.active_window().open_file("%s:%s:%s" % 
                        (file_name, row, col),
                        sublime.ENCODED_POSITION)
            except Exception as e:
                # print(e)
                self.logger_msg += str(e) + '\n'
        else:
            try:
                webbrowser.open_new_tab(href)
            except Exception as e:
                # logging.error('cannot open link on web browser.')
                self.logger_msg += str(e) + '\n'
项目:NeoVintageous    作者:NeoVintageous    | 项目源码 | 文件源码
def open_file(self, file_name):
        flags = (FORCE_GROUP | ENCODED_POSITION)
        self.window.open_file(file_name, group=(self.window.num_groups() - 1), flags=flags)
项目:NeoVintageous    作者:NeoVintageous    | 项目源码 | 文件源码
def run(self, edit, mode=None, character=None, count=1):
        def f(view, s):
            if mode == modes.VISUAL:
                if s.a <= s.b:
                    if address.b < s.b:
                        return Region(s.a + 1, address.b)
                    else:
                        return Region(s.a, address.b)
                else:
                    return Region(s.a + 1, address.b)

            elif mode == modes.NORMAL:
                return address

            elif mode == modes.INTERNAL_NORMAL:
                if s.a < address.a:
                    return Region(view.full_line(s.b).a, view.line(address.b).b)
                return Region(view.full_line(s.b).b, view.line(address.b).a)

            return s

        state = self.state
        address = state.marks.get_as_encoded_address(character)

        if address is None:
            return

        if isinstance(address, str):
            if not address.startswith('<command'):
                self.view.window().open_file(address, ENCODED_POSITION)
            else:
                # We get a command in this form: <command _vi_double_quote>
                self.view.run_command(address.split(' ')[1][:-1])
            return

        regions_transformer(self.view, f)

        if not self.view.visible_region().intersects(address):
            self.view.show_at_center(address)
项目:NeoVintageous    作者:NeoVintageous    | 项目源码 | 文件源码
def run(self, edit, count=1, mode=None, character=None):
        def f(view, s):
            if mode == modes.VISUAL:
                if s.a <= s.b:
                    if address.b < s.b:
                        return Region(s.a + 1, address.b)
                    else:
                        return Region(s.a, address.b)
                else:
                    return Region(s.a + 1, address.b)
            elif mode == modes.NORMAL:
                return address
            elif mode == modes.INTERNAL_NORMAL:
                return Region(s.a, address.b)

            return s

        state = self.state
        address = state.marks.get_as_encoded_address(character, exact=True)

        if address is None:
            return

        if isinstance(address, str):
            if not address.startswith('<command'):
                self.view.window().open_file(address, ENCODED_POSITION)
            return

        # This is a motion in a composite command.
        regions_transformer(self.view, f)
项目:PhaserSublimePackage    作者:PhaserEditor2D    | 项目源码 | 文件源码
def run(self, edit, **args):
    if len(jump_stack) > 0:
      sublime.active_window().open_file(jump_stack.pop(), sublime.ENCODED_POSITION)
项目:KodiDevKit    作者:phil65    | 项目源码 | 文件源码
def on_done(self, index):
        if index == -1:
            return None
        node = self.nodes[index]
        view = self.window.open_file("%s:%i" % (node["file"], node["line"]),
                                     sublime.ENCODED_POSITION)
        self.select_text(view, node)
项目:KodiDevKit    作者:phil65    | 项目源码 | 文件源码
def show_preview(self, index):
        node = self.nodes[index]
        self.window.open_file("%s:%i" % (node["file"], node["line"]),
                              sublime.ENCODED_POSITION | sublime.TRANSIENT)
项目:KodiDevKit    作者:phil65    | 项目源码 | 文件源码
def run(self):
        flags = sublime.CLASS_WORD_START | sublime.CLASS_WORD_END
        view = self.window.active_view()
        position = INFOS.go_to_tag(keyword=utils.get_node_content(view, flags),
                                   folder=view.file_name().split(os.sep)[-2])
        if position:
            self.window.open_file(position, sublime.ENCODED_POSITION)
项目:KodiDevKit    作者:phil65    | 项目源码 | 文件源码
def on_done(self, index):
        if index == -1:
            return None
        node = self.nodes[index]
        self.window.open_file("%s:%i" % (node["file"], node["line"]),
                              sublime.ENCODED_POSITION)
项目:purescript-ide-sublime    作者:b123400    | 项目源码 | 文件源码
def show_type_hint(self, view, point):
        project_path = find_project_dir(view)
        module_info = get_module_imports(project_path, view.file_name())
        module, word = module_word(view, point)
        if word == '':
            return
        if word[0] == '(' and word[-1] == ')':
            word = word[1:-1]

        # TODO: use module from module_word to improve accuracy
        type_info = get_type(
            project_path,
            module_info['moduleName'],
            word,
            [m['module'] for m in module_info['imports']]
        )
        if len(type_info) == 0:
            return

        first_result = type_info[0]

        def on_navigate(string):
            view.window().open_file(string, sublime.ENCODED_POSITION)

        #file_path:row:col
        link_url = first_result['definedAt']['name'] + ':' + \
            str(first_result['definedAt']['start'][0]) + ':' + \
            str(first_result['definedAt']['start'][1])

        view.show_popup('''
            <p>From: <a href="%s">%s</a> </p>
            <p>Type: %s </p>
        ''' % ( link_url,
                ",".join(first_result['exportedFrom']),
                first_result['type']),
        sublime.HIDE_ON_MOUSE_MOVE_AWAY,
        point,
        500,    # max width
        500,    # max height
        on_navigate)
项目:SublimeRemoteGDB    作者:summerwinter    | 项目源码 | 文件源码
def select(self, row):
        if row >= len(self.error_lines):
            return
        errorline = self.error_lines[row]
        sublime.active_window().open_file("%s:%d" % (errorline.file_name, errorline.line), sublime.ENCODED_POSITION)
项目:GoGuru    作者:alvarolm    | 项目源码 | 文件源码
def on_selection_modified(self, view):
        if view.name() == "GoGuru Output":
            if len(view.sel()) != 1:
                return
            if view.sel()[0].size() == 0:
                return

            lines = view.lines(view.sel()[0])
            if len(lines) != 1:
                return

            line = view.full_line(lines[0])
            text = view.substr(line)

            # format = get_setting("guru_format")

            # "filename:line:col" pattern for json
            m = re.search("\"([^\"]+):([0-9]+):([0-9]+)\"", text)

            # >filename:line:col< pattern for xml
            if m is None:
                m = re.search(">([^<]+):([0-9]+):([0-9]+)<", text)

            # filename:line.col-line.col: pattern for plain
            if m is None:
                m = re.search("^(.+\.go):([0-9]+).([0-9]+)[-: ]", text)

            if m:
                w = view.window()
                new_view = w.open_file(m.group(1) + ':' + m.group(2) + ':' + m.group(3), sublime.ENCODED_POSITION)
                group, index = w.get_view_index(new_view)
                if group != -1:
                    w.focus_group(group)
项目:EasyClangComplete    作者:niosus    | 项目源码 | 文件源码
def on_done(self, idx):
        """Pick this error to navigate to a file."""
        log.debug("Picked idx: %s", idx)
        if idx < 0:
            return
        picked_entry = self.errors[idx]
        file_str = "{file}:{row}:{col}".format(file=picked_entry['file'],
                                               row=picked_entry['row'],
                                               col=picked_entry['col'])
        self.view.window().open_file(file_str, sublime.ENCODED_POSITION)
项目:EasyClangComplete    作者:niosus    | 项目源码 | 文件源码
def on_open_declaration(location):
        """Call this callback when link to type is clicked in info popup.

        Opens location with type declaration

        """
        sublime.active_window().open_file(location, sublime.ENCODED_POSITION)
项目:LSP    作者:tomv564    | 项目源码 | 文件源码
def handle_response(self, response, position):
        window = sublime.active_window()
        if response:
            location = response if isinstance(response, dict) else response[0]
            file_path = uri_to_filename(location.get("uri"))
            start = Point.from_lsp(location['range']['start'])
            file_location = "{}:{}:{}".format(file_path, start.row + 1, start.col + 1)
            debug("opening location", location)
            window.open_file(file_location, sublime.ENCODED_POSITION)
            # TODO: can add region here.
        else:
            window.run_command("goto_definition")
项目:sublimeTextConfig    作者:luoye-fe    | 项目源码 | 文件源码
def jump(self, transient: bool=False) -> None:
        """Jump to the selection
        """

        flags = sublime.ENCODED_POSITION
        if transient is True:
            flags |= sublime.TRANSIENT

        get_jump_history_for_view(self.view).push_selection(self.view)
        sublime.active_window().open_file(self.position, flags)
        if not transient:
            self._toggle_indicator()
项目:sublimeTextConfig    作者:luoye-fe    | 项目源码 | 文件源码
def _jump(self, filename: Union[int, str], lineno: int =None,
              columno: int =None, transient: bool =False) -> None:
        """Jump to a window
        """

        # process jumps from options window
        if type(filename) is int:
            if filename == -1:
                # restore view
                view = self.text.view
                point = self.point

                sublime.active_window().focus_view(view)
                view.show(point)

                if view.sel()[0] != point:
                    view.sel().clear()
                    view.sel().add(point)

                return

        opts = self.options[filename]
        if len(self.options[filename]) == 4:
            opts = opts[1:]

        filename, lineno, columno = opts
        flags = sublime.ENCODED_POSITION
        if transient:
            flags |= sublime.TRANSIENT

        sublime.active_window().open_file(
            '{}:{}:{}'.format(filename, lineno or 0, columno or 0),
            flags
        )

        self._toggle_indicator(lineno, columno)
项目:ChromiumXRefs    作者:karlinjf    | 项目源码 | 文件源码
def goToLocation(cmd, src_path, caller, view):
  line = caller['line'];
  path = src_path + caller['filename']

  # Open the file and jump to the line
  new_view = view.window().open_file(path + ":%d:0" % line, sublime.ENCODED_POSITION)
  if new_view.is_loading():
    global g_open_callbacks_on_load
    g_open_callbacks_on_load[path] = lambda: finishGoingToLocation(caller, new_view)
    return

  finishGoingToLocation(caller, new_view)
项目:SublimeAnarchy    作者:AnarchyTools    | 项目源码 | 文件源码
def on_selection_modified(self, view):
        if not self.enable(view):
            return
        if len(list(view.sel())) == 0:
            return
        cursor = view.sel()[0].begin()
        if "filename" in view.scope_name(cursor):
            line = view.substr(view.line(cursor))
            parts = [p.strip() for p in line.split(":", maxsplit=5)]

            filename = os.path.join(os.path.dirname(view.window().project_file_name()), parts[0])
            view.window().open_file(filename + ":" + parts[1] + ":" + parts[2], sublime.ENCODED_POSITION)
项目:SmartVHDL    作者:TheClams    | 项目源码 | 文件源码
def on_navigate(self, href):
        href_s = href.split('@')
        pos = sublime.Region(0,0)
        v = self.view.window().open_file(href_s[1], sublime.ENCODED_POSITION)


############################################################################
# Helper function to retrieve current module name based on cursor position #
项目:VintageousPlus    作者:trishume    | 项目源码 | 文件源码
def open_file(self, file_name):
        flags = (sublime.FORCE_GROUP | sublime.ENCODED_POSITION)
        self.window.open_file(file_name, group=(self.window.num_groups() - 1),
                              flags=flags)
项目:VintageousPlus    作者:trishume    | 项目源码 | 文件源码
def run(self, count=1, mode=None, globally=False):

        def f(view, s):
            if mode == modes.NORMAL:
                return sublime.Region(location, location)

            elif mode == modes.VISUAL:
                return sublime.Region(s.a + 1, location)

            elif mode == modes.INTERNAL_NORMAL:
                return sublime.Region(s.a, location)

            return s

        current_sel = self.view.sel()[0]
        self.view.sel().clear()
        self.view.sel().add(current_sel)

        location = self.find_symbol(current_sel, globally=globally)
        if not location:
            return

        if globally:
            # Global symbol; simply open the file; not a motion.
            # TODO: Perhaps must be a motion if the target file happens to be
            #       the current one?
            self.view.window().open_file(
                location[0] + ':' + ':'.join([str(x) for x in location[2]]),
                sublime.ENCODED_POSITION)
            return

        # Local symbol; select.
        location = self.view.text_point(*location)
        regions_transformer(self.view, f)
项目:VintageousPlus    作者:trishume    | 项目源码 | 文件源码
def run(self, edit, mode=None, character=None, count=1):
        def f(view, s):
            if mode == modes.VISUAL:
                if s.a <= s.b:
                    if address.b < s.b:
                        return R(s.a + 1, address.b)
                    else:
                        return R(s.a, address.b)
                else:
                    return R(s.a + 1, address.b)

            elif mode == modes.NORMAL:
                return address

            elif mode == modes.INTERNAL_NORMAL:
                if s.a < address.a:
                    return R(view.full_line(s.b).a,
                                          view.line(address.b).b)
                return R(view.full_line(s.b).b,
                                      view.line(address.b).a)

            return s

        state = self.state
        address = state.marks.get_as_encoded_address(character)

        if address is None:
            return

        if isinstance(address, str):
            if not address.startswith('<command'):
                self.view.window().open_file(address, sublime.ENCODED_POSITION)
            else:
                # We get a command in this form: <command _vi_double_quote>
                self.view.run_command(address.split(' ')[1][:-1])
            return

        regions_transformer(self.view, f)

        if not self.view.visible_region().intersects(address):
            self.view.show_at_center(address)
项目:VintageousPlus    作者:trishume    | 项目源码 | 文件源码
def run(self, edit, count=1, mode=None, character=None):
        def f(view, s):
            if mode == modes.VISUAL:
                if s.a <= s.b:
                    if address.b < s.b:
                        return R(s.a + 1, address.b)
                    else:
                        return R(s.a, address.b)
                else:
                    return R(s.a + 1, address.b)
            elif mode == modes.NORMAL:
                return address
            elif mode == modes.INTERNAL_NORMAL:
                return R(s.a, address.b)

            return s

        state = self.state
        address = state.marks.get_as_encoded_address(character, exact=True)

        if address is None:
            return

        if isinstance(address, str):
            if not address.startswith('<command'):
                self.view.window().open_file(address, sublime.ENCODED_POSITION)
            return

        # This is a motion in a composite command.
        regions_transformer(self.view, f)
项目:st-user-package    作者:math2001    | 项目源码 | 文件源码
def on_found(self, path, line):
        self.window.open_file(path + ':' + line, sublime.ENCODED_POSITION)
项目:SublimeAnarchyDebug    作者:AnarchyTools    | 项目源码 | 文件源码
def update_run_marker(window, lldb=None):
    if not lldb:
        for view in window.views():
            view.erase_regions("run_pointer")
        return

    with retry():
        try:
            bt = lldb.get_backtrace_for_selected_thread()
            if 'bt' not in bt:
                for view in window.views():
                    view.erase_regions("run_pointer")
                return
            for frame in bt['bt']:
                if 'file' in frame and frame['line'] != 0:
                    found = False
                    for view in window.views():
                        if view.file_name() == frame['file']:
                            location = view.line(view.text_point(frame['line'] - 1, 0))
                            view.add_regions("run_pointer", [location], "entity.name.class", "Packages/SublimeAnarchyDebug/images/stop_point.png", sublime.DRAW_NO_FILL)
                            if not view.visible_region().contains(location):
                                view.show_at_center(location)
                            if window.active_group() == 0:
                                window.focus_view(view)
                            found = True
                    if not found:
                        grp = window.active_group()
                        window.focus_group(0)
                        view = window.open_file(frame['file'] + ":" + str(frame['line']), sublime.ENCODED_POSITION)
                        window.focus_group(grp)
                        location = view.line(view.text_point(frame['line'] - 1, 0))
                        view.add_regions("run_pointer", [location], "entity.name.class", "Packages/SublimeAnarchyDebug/images/stop_point.png", sublime.DRAW_NO_FILL)
                        if not view.visible_region().contains(location):
                            view.show_at_center(location)
                    break
        except xmlrpc.client.Fault:
            for view in window.views():
                view.erase_regions("run_pointer")
项目:sublime-sourcetrail    作者:CoatiSoftware    | 项目源码 | 文件源码
def setCursorPosition(filePath, row, col):
    if (os.path.exists(filePath)):
        sublime.active_window().open_file(filePath + ":" + str(row) +
                                          ":" + str(col), sublime.ENCODED_POSITION)
    else:
        sublime.error_message(
            "Sourcetrail is trying to jump to a file that does not exist: " + filePath)
项目:RemoteCpp    作者:ruibm    | 项目源码 | 文件源码
def _open_file(self, window, file):
      self.log('rui => ' + str(file.to_args()))
      path_row_col = '{path}:{row}:{col}'.format(
          path=file.local_path(),
          row=file.row,
          col=file.col)
      view = window.open_file(path_row_col, sublime.ENCODED_POSITION)
项目:Sublime-GameMaker-Studio-Language-Bundle    作者:uduse    | 项目源码 | 文件源码
def make_script(self, project_info_path, script_dir_path, script_name):
        with open(project_info_path, "r+", encoding="utf-8-sig") as f:
            try:
                # Generate script parameters
                script_key = str(uuid.uuid4())
                script_id = str(uuid.uuid4())
                info = json.load(f, object_pairs_hook=OrderedDict)

                # TODO: check if dir or script exisits already

                # Insert the new script into the project info file
                resource_path = "scripts\\%s\\%s.yy" % (script_name, script_name)
                new_resource_item = OrderedDict(
                    [("Key", script_key),
                     ("Value", OrderedDict(
                            [("id", script_id),
                            ("resourcePath", resource_path),
                            ("resourceType", "GMScript")]
                        ))
                    ])
                info['resources'].insert(0, new_resource_item)
                info['script_order'].append(script_key)
                f.seek(0)
                f.write(json.dumps(info, separators=(',', ': '), indent=4))
                f.truncate()

                os.chdir(script_dir_path)
                os.mkdir(script_name)
                os.chdir(script_dir_path + "/" + script_name)

                # Generate script file and open for edit
                with open(script_name + ".gml", "w", encoding="utf-8-sig") as f:
                    window = self.view.window()
                    view = window.open_file(script_dir_path + "/" + 
                        script_name + "/" + script_name + ".gml", sublime.ENCODED_POSITION)
                    window.focus_view(view)

                # Generate and fills the script info file
                with open(script_name + ".yy", "w", encoding="utf-8-sig") as f:
                    info = OrderedDict(
                        [("id", script_key),
                        ("modelName", "GMScript"),
                        ("mvc", "1.0"),
                        ("name", script_name),
                        ("IsCompatibility", False),
                        ("IsDnD", False)
                        ])
                    json.dump(info, f, separators=(',', ': '), indent=4)
            except Exception as e:
                print(e)
项目:SublimeRemoteGDB    作者:summerwinter    | 项目源码 | 文件源码
def update_cursor():
    global gdb_cursor
    global gdb_cursor_position
    global gdb_stack_index
    global gdb_stack_frame

    if not get_setting("update_while_running", True) and gdb_run_status == "running":
        return

    res = run_cmd("-stack-info-frame", True)
    if get_result(res) == "error":
        if gdb_run_status != "running":
            print("run_status is %s, but got error: %s" % (gdb_run_status, res))
            return
    currFrame = parse_result_line(res)["frame"]
    gdb_stack_index = int(currFrame["level"])

    if "fullname" in currFrame:
        gdb_cursor = gdb_source_path.translate_remote_path(currFrame["fullname"])
        gdb_cursor_position = int(currFrame["line"])
        sublime.active_window().focus_group(get_setting("file_group", 0))
        sublime.active_window().open_file("%s:%d" % (gdb_cursor, gdb_cursor_position), sublime.ENCODED_POSITION)
        global gdb_global_command_input_focused
        if gdb_global_command_input_focused == True:
            sublime.active_window().focus_view(gdb_input_view)
            gdb_global_command_input_focused = False
    else:
        gdb_cursor_position = 0

    sameFrame = gdb_stack_frame is not None and \
                gdb_stack_frame["func"] == currFrame["func"]
    if sameFrame and "shlibname" in currFrame and "shlibname" in gdb_stack_frame:
        sameFrame = currFrame["shlibname"] == gdb_stack_frame["shlibname"]
    if sameFrame and "fullname" in currFrame and "fullname" in gdb_stack_frame:
        sameFrame = currFrame["fullname"] == gdb_stack_frame["fullname"]

    gdb_stack_frame = currFrame
    # Always need to update the callstack since it's possible to
    # end up in the current function from many different call stacks
    gdb_callstack_view.update_callstack()
    gdb_threads_view.update_threads()

    update_view_markers()
    gdb_variables_view.update_variables(sameFrame)
    gdb_register_view.update_values()
    gdb_disassembly_view.update_disassembly()

    global gdb_first_callstack
    if gdb_first_callstack == False and gdb_settings.get("debug_mode") in ["attach", "coredump"]:
        gdb_first_callstack = True
        gdb_breakpoint_view.sync_breakpoints()
项目:CrystalAutoComplete    作者:TechMagister    | 项目源码 | 文件源码
def on_query_completions(self, view, prefix, locations):
        # Check if this is a Crystal source file. This check
        # relies on the Crystal syntax formatting extension
        # being installed - https://github.com/crystal-lang/sublime-crystal
        if view.match_selector(locations[0], "source.crystal"):

            try:
                raw_results = run_cracker(view, locations[0])
            except FileNotFoundError:
                print("Unable to find cracker executable (check settings)")
                return

            results = []
            regexp = '[\.#](.+)\('

            for r in raw_results:
                if r.type == "Function":
                    if r.name.find("#") != -1:
                        trigger = r.name.split("#")[1]
                    else:
                        trigger = r.name.split(".")[1]
                    contents = trigger.split("(")[0]

                    if r.name.find("()") == -1:
                        contents = contents + '('
                else:
                    trigger = r.name
                    contents = r.name
                results.append([trigger, contents])

            if len(results) > 0:
                # return results
                return (results, sublime.INHIBIT_WORD_COMPLETIONS | sublime.INHIBIT_EXPLICIT_COMPLETIONS)


#class CrystalGotoDefinitionCommand(sublime_plugin.TextCommand):
#    def run(self, edit):
#        # Get the buffer location in correct format for cracker
#        row, col = self.view.rowcol(self.view.sel()[0].begin())
#        row += 1
#
#        results = run_cracker(self.view, ["find-definition", str(row), str(col)])
#
#        if len(results) == 1:
#            result = results[0]
#            path = result.path
#            # On Windows the cracker will return the paths without the drive
#            # letter and we need the letter for the open_file to work.
#            if sublime.platform() == 'windows' and not re.compile('^\w\:').match(path):
#                path = 'c:' + path
#            encoded_path = "{0}:{1}:{2}".format(path, result.row, result.column)
#            self.view.window().open_file(encoded_path, sublime.ENCODED_POSITION)