Example #1
0
    def show_types(self, types):
        if not types:
            show_status_message("Can't infer type", False)
            return

        types = sorted(list(
            filter(lambda t: t.region(self.view).contains(self.view.sel()[0]),
                   types)),
                       key=lambda t: t.region(self.view).size())
        self.output_view = output_panel(self.view.window(),
                                        '',
                                        panel_name=TYPES_PANEL_NAME,
                                        syntax='Haskell-SublimeHaskell',
                                        show_panel=False)

        regions = []
        for t in types:
            output_text(self.output_view,
                        '{0}\n'.format(t.show(self.view)),
                        clear=False)
            regions.append(
                sublime.Region(
                    self.output_view.size() - 1 -
                    len(use_unicode_operators(t.typename)),
                    self.output_view.size() - 1))
        self.output_view.add_regions('types', regions, 'comment', '',
                                     sublime.DRAW_OUTLINED)
        show_panel(self.view.window(), panel_name=TYPES_PANEL_NAME)
Example #2
0
    def show_types(self, types):
        if not types:
            show_status_message("Can't infer type", False)
            return

        self.types = types
        self.output_view = output_panel(self.view.window(), '', panel_name = TYPES_PANEL_NAME, syntax = 'Haskell-SublimeHaskell', show_panel = False)
        regions = []
        for t in self.types:
            output_text(self.output_view, '{0}\n'.format(t.show(self.view)), clear = False)
            regions.append(sublime.Region(self.output_view.size() - 1 - len(use_unicode_operators(t.typename)), self.output_view.size() - 1))
        self.output_view.add_regions('types', regions, 'comment', '', sublime.DRAW_OUTLINED)
        show_panel(self.view.window(), panel_name = TYPES_PANEL_NAME)
Example #3
0
    def run(self, edit):
        selections = list(self.view.sel())

        if not self.is_infos_valid(selections):
            self.Infos = [ExpandSelectionInfo(self.view, s) for s in selections]

        if not self.is_infos_valid(selections):
            show_status_message('Unable to retrieve expand selection info', False)
            return

        tr = [i.expand() for i in self.Infos]
        self.view.sel().clear()
        self.view.sel().add_all([t.region for t in tr])

        output_panel(self.view.window(), '\n'.join([use_unicode_operators(t.typename) for t in tr]), panel_name = 'sublime_haskell_expand_selection_expression', syntax = 'Haskell-SublimeHaskell')
Example #4
0
    def run(self, edit):
        selections = list(self.view.sel())

        if not self.is_infos_valid(selections):
            self.Infos = [
                ExpandSelectionInfo(self.view, s) for s in selections
            ]

        if not self.is_infos_valid(selections):
            show_status_message('Unable to retrieve expand selection info',
                                False)
            return

        tr = [i.expand() for i in self.Infos]
        self.view.sel().clear()
        self.view.sel().add_all([t.region for t in tr])

        output_panel(self.view.window(),
                     '\n'.join([use_unicode_operators(t.typename)
                                for t in tr]),
                     panel_name='sublime_haskell_expand_selection_expression',
                     syntax='Haskell-SublimeHaskell')