Exemple #1
0
 def get_symbols_for_class(self, file_path, clazzName):
     lines = []
     with open(file_path) as f:
         content = f.read()
         ext = file_manager.get_file_extension(file_path)
         #obtain a symbols handler for this file extension
         symbols_handler = settings.get_symbols_handler(ext)
         symbols = symbols_handler.obtain_symbols(content,
             filename=file_path)
         if "classes" in symbols:
             for claz in symbols['classes']:
                 if claz != clazzName:
                     continue
                 clazz = symbols['classes'][claz]
                 line_number = clazz[0] - 1
                 lines.append(ResultItem(type=FILTERS['classes'], name=claz,
                     path=unicode(file_path), lineno=line_number))
                 if 'attributes' in clazz[1]:
                     for attr in clazz[1]['attributes']:
                         line_number = clazz[1]['attributes'][attr] - 1
                         lines.append(ResultItem(
                             type=FILTERS['attribs'], name=attr,
                             path=unicode(file_path), lineno=line_number))
                 if 'functions' in clazz[1]:
                     for func in clazz[1]['functions']:
                         line_number = clazz[1]['functions'][func] - 1
                         lines.append(ResultItem(type=FILTERS['functions'],
                             name=func, path=unicode(file_path),
                             lineno=line_number))
                 return lines
         return []
Exemple #2
0
    def _grep_file_locate(self, file_path, file_name):
        #type - file_name - file_path
        global mapping_locations
        #TODO: Check if the last know state of the file is valid and load that
        exts = settings.SYNTAX.get('python')['extension']
        file_ext = file_manager.get_file_extension(file_path)
        if file_ext not in exts:
            mapping_locations[file_path] = [
                ResultItem(type=FILTERS['non-python'], name=file_name,
                    path=file_path, lineno=0)]
        else:
            mapping_locations[file_path] = [
                ResultItem(type=FILTERS['files'], name=file_name,
                        path=file_path, lineno=0)]
        #obtain a symbols handler for this file extension
        symbols_handler = settings.get_symbols_handler(file_ext)
        if symbols_handler is None:
            return
        results = []
        with open(file_path) as f:
            content = f.read()
            symbols = symbols_handler.obtain_symbols(content,
                filename=file_path)
            self.__parse_symbols(symbols, results, file_path)

        if results:
            mapping_locations[file_path] += results
Exemple #3
0
    def update_explorer(self):
        """Update the symbols in the Symbol Explorer when a file is saved."""
        main_container = IDE.get_service('main_container')
        if not main_container:
            return
        editorWidget = main_container.get_actual_editor()
        if editorWidget:
            ext = file_manager.get_file_extension(editorWidget.ID)
            #obtain a symbols handler for this file extension
            symbols_handler = settings.get_symbols_handler(ext)
            if symbols_handler:
                source = editorWidget.toPlainText()
                if editorWidget.encoding is not None:
                    source = source.encode(editorWidget.encoding)
                if ext == 'py':
                    args = (source, True)
                else:
                    args = (source, )
                symbols = symbols_handler.obtain_symbols(*args)
                self.update_symbols(symbols, editorWidget.ID)

            #TODO: Should we change the code below similar to the code above?
            exts = settings.SYNTAX.get('python')['extension']
            if ext in exts or editorWidget.newDocument:
                self.update_errors(editorWidget.errors, editorWidget.pep8)
Exemple #4
0
 def get_symbols_for_class(self, file_path, clazzName):
     lines = []
     with open(file_path) as f:
         content = f.read()
         ext = file_manager.get_file_extension(file_path)
         #obtain a symbols handler for this file extension
         symbols_handler = settings.get_symbols_handler(ext)
         symbols = symbols_handler.obtain_symbols(content)
         if "classes" in symbols:
             for claz in symbols['classes']:
                 if claz != clazzName:
                     continue
                 clazz = symbols['classes'][claz]
                 #type - class name - file_path - lineNumber
                 lines.append(('<', claz, unicode(file_path),
                     clazz[0] - 1))
                 if 'attributes' in clazz[1]:
                     for attr in clazz[1]['attributes']:
                         #type - attribute name - file_path - lineNumber
                         lines.append(('-', attr, unicode(file_path),
                             clazz[1]['attributes'][attr] - 1))
                 if 'functions' in clazz[1]:
                     for func in clazz[1]['functions']:
                         #type - function name - file_path - lineNumber
                         lines.append(('>', func, unicode(file_path),
                             clazz[1]['functions'][func] - 1))
                 return lines
         return []
Exemple #5
0
    def _grep_file_locate(self, file_path, file_name):
        #type - file_name - file_path
        global mapping_locations
        #TODO: Check if the last know state of the file is valid and load that
        exts = settings.SYNTAX.get('python')['extension']
        file_ext = file_manager.get_file_extension(file_path)
        if file_ext not in exts:
            mapping_locations[file_path] = [
                ResultItem(type=FILTERS['non-python'],
                           name=file_name,
                           path=file_path,
                           lineno=0)
            ]
        else:
            mapping_locations[file_path] = [
                ResultItem(type=FILTERS['files'],
                           name=file_name,
                           path=file_path,
                           lineno=0)
            ]
        #obtain a symbols handler for this file extension
        symbols_handler = settings.get_symbols_handler(file_ext)
        if symbols_handler is None:
            return
        results = []
        with open(file_path) as f:
            content = f.read()
            symbols = symbols_handler.obtain_symbols(content,
                                                     filename=file_path)
            self.__parse_symbols(symbols, results, file_path)

        if results:
            mapping_locations[file_path] += results
Exemple #6
0
 def get_symbols_for_class(self, file_path, clazzName):
     lines = []
     with open(file_path) as f:
         content = f.read()
         ext = file_manager.get_file_extension(file_path)
         #obtain a symbols handler for this file extension
         symbols_handler = settings.get_symbols_handler(ext)
         symbols = symbols_handler.obtain_symbols(content)
         if "classes" in symbols:
             for claz in symbols['classes']:
                 if claz != clazzName:
                     continue
                 clazz = symbols['classes'][claz]
                 #type - class name - file_path - lineNumber
                 lines.append(('<', claz, unicode(file_path), clazz[0] - 1))
                 if 'attributes' in clazz[1]:
                     for attr in clazz[1]['attributes']:
                         #type - attribute name - file_path - lineNumber
                         lines.append(('-', attr, unicode(file_path),
                                       clazz[1]['attributes'][attr] - 1))
                 if 'functions' in clazz[1]:
                     for func in clazz[1]['functions']:
                         #type - function name - file_path - lineNumber
                         lines.append(('>', func, unicode(file_path),
                                       clazz[1]['functions'][func] - 1))
                 return lines
         return []
Exemple #7
0
 def get_symbols_for_class(self, file_path, clazzName):
     lines = []
     with open(file_path) as f:
         content = f.read()
         ext = file_manager.get_file_extension(file_path)
         #obtain a symbols handler for this file extension
         symbols_handler = settings.get_symbols_handler(ext)
         symbols = symbols_handler.obtain_symbols(content,
             filename=file_path)
         if "classes" in symbols:
             for claz in symbols['classes']:
                 if claz != clazzName:
                     continue
                 clazz = symbols['classes'][claz]
                 line_number = clazz[0] - 1
                 lines.append(ResultItem(type=FILTERS['classes'], name=claz,
                     path=file_path, lineno=line_number))
                 if 'attributes' in clazz[1]:
                     for attr in clazz[1]['attributes']:
                         line_number = clazz[1]['attributes'][attr] - 1
                         lines.append(ResultItem(
                             type=FILTERS['attribs'], name=attr,
                             path=file_path, lineno=line_number))
                 if 'functions' in clazz[1]:
                     for func in clazz[1]['functions']:
                         line_number = clazz[1]['functions'][func][0] - 1
                         lines.append(ResultItem(type=FILTERS['functions'],
                             name=func, path=file_path,
                             lineno=line_number))
                 return lines
         return []
    def update_explorer(self):
        """Update the symbols in the Symbol Explorer when a file is saved."""
        main_container = IDE.get_service('main_container')
        if not main_container:
            return
        editorWidget = main_container.get_current_editor()
        if editorWidget:
            ext = file_manager.get_file_extension(editorWidget.ID)
            #obtain a symbols handler for this file extension
            symbols_handler = settings.get_symbols_handler(ext)
            if symbols_handler:
                source = editorWidget.toPlainText()
                if editorWidget.encoding is not None:
                    source = source.encode(editorWidget.encoding)
                if ext == 'py':
                    args = (source, True)
                else:
                    args = (source,)
                symbols = symbols_handler.obtain_symbols(*args)
                self.update_symbols(symbols, editorWidget.ID)

            #TODO: Should we change the code below similar to the code above?
            exts = settings.SYNTAX.get('python')['extension']
            if ext in exts or editorWidget.newDocument:
                self.update_errors(editorWidget.errors, editorWidget.pep8)
Exemple #9
0
 def _load_symbols(self, neditable):
     symbols_handler = settings.get_symbols_handler('py')
     source = neditable.editor.toPlainText()
     source = source.encode(neditable.editor.encoding)
     symbols = symbols_handler.get_symbols_simplified(source)
     self._symbols_index = sorted(symbols.keys())
     symbols = sorted(list(symbols.items()), key=lambda x: x[0])
     self.bar.add_symbols(symbols)
     line = neditable.editor.textCursor().blockNumber()
     self._set_current_symbol(line, True)
Exemple #10
0
 def _load_symbols(self, neditable):
     symbols_handler = settings.get_symbols_handler('py')
     source = neditable.editor.toPlainText()
     source = source.encode(neditable.editor.encoding)
     symbols = symbols_handler.get_symbols_simplified(source)
     self._symbols_index = sorted(symbols.keys())
     symbols = sorted(list(symbols.items()), key=lambda x: x[0])
     self.bar.add_symbols(symbols)
     line = neditable.editor.textCursor().blockNumber()
     self._set_current_symbol(line, True)
Exemple #11
0
 def _grep_file_locate(self, file_path, file_name):
     #type - file_name - file_path
     global mapping_locations
     exts = settings.SYNTAX.get('python')['extension']
     if file_manager.get_file_extension(unicode(file_name)) not in exts:
         mapping_locations[unicode(file_path)] = [
             ResultItem(type=FILTERS['non-python'], name=unicode(file_name),
                 path=unicode(file_path), lineno=0)]
     else:
         mapping_locations[unicode(file_path)] = [
             ResultItem(type=FILTERS['files'], name=unicode(file_name),
                     path=unicode(file_path), lineno=0)]
     ext = file_manager.get_file_extension(file_path)
     #obtain a symbols handler for this file extension
     symbols_handler = settings.get_symbols_handler(ext)
     if symbols_handler is None:
         return
     results = []
     with open(file_path) as f:
         content = f.read()
         symbols = symbols_handler.obtain_symbols(content,
             filename=file_path)
         if "classes" in symbols:
             for claz in symbols['classes']:
                 line_number = symbols['classes'][claz][0] - 1
                 members = symbols['classes'][claz][1]
                 results.append(ResultItem(type=FILTERS['classes'],
                     name=claz, path=unicode(file_path),
                     lineno=line_number))
                 if 'attributes' in members:
                     for attr in members['attributes']:
                         line_number = members['attributes'][attr] - 1
                         results.append(ResultItem(type=FILTERS['attribs'],
                             name=attr, path=unicode(file_path),
                             lineno=line_number))
                 if 'functions' in members:
                     for func in members['functions']:
                         line_number = members['functions'][func] - 1
                         results.append(ResultItem(
                             type=FILTERS['functions'], name=func,
                             path=unicode(file_path), lineno=line_number))
         if 'attributes' in symbols:
             for attr in symbols['attributes']:
                 line_number = symbols['attributes'][attr] - 1
                 results.append(ResultItem(type=FILTERS['attribs'],
                     name=attr, path=unicode(file_path),
                     lineno=line_number))
         if 'functions' in symbols:
             for func in symbols['functions']:
                 line_number = symbols['functions'][func] - 1
                 results.append(ResultItem(
                     type=FILTERS['functions'], name=func,
                     path=unicode(file_path), lineno=line_number))
     if results:
         mapping_locations[unicode(file_path)] += results
Exemple #12
0
 def _grep_file_locate(self, file_path, file_name):
     #type - file_name - file_path
     global mapping_locations
     exts = settings.SYNTAX.get('python')['extension']
     if file_manager.get_file_extension(unicode(file_name)) not in exts:
         mapping_locations[unicode(file_path)] = [
             ResultItem(type=FILTERS['non-python'], name=unicode(file_name),
                 path=unicode(file_path), lineno=0)]
     else:
         mapping_locations[unicode(file_path)] = [
             ResultItem(type=FILTERS['files'], name=unicode(file_name),
                     path=unicode(file_path), lineno=0)]
     ext = file_manager.get_file_extension(file_path)
     #obtain a symbols handler for this file extension
     symbols_handler = settings.get_symbols_handler(ext)
     if symbols_handler is None:
         return
     results = []
     with open(file_path) as f:
         content = f.read()
         symbols = symbols_handler.obtain_symbols(content,
             filename=file_path)
         if "classes" in symbols:
             for claz in symbols['classes']:
                 line_number = symbols['classes'][claz][0] - 1
                 members = symbols['classes'][claz][1]
                 results.append(ResultItem(type=FILTERS['classes'],
                     name=claz, path=unicode(file_path),
                     lineno=line_number))
                 if 'attributes' in members:
                     for attr in members['attributes']:
                         line_number = members['attributes'][attr] - 1
                         results.append(ResultItem(type=FILTERS['attribs'],
                             name=attr, path=unicode(file_path),
                             lineno=line_number))
                 if 'functions' in members:
                     for func in members['functions']:
                         line_number = members['functions'][func] - 1
                         results.append(ResultItem(
                             type=FILTERS['functions'], name=func,
                             path=unicode(file_path), lineno=line_number))
         if 'attributes' in symbols:
             for attr in symbols['attributes']:
                 line_number = symbols['attributes'][attr] - 1
                 results.append(ResultItem(type=FILTERS['attribs'],
                     name=attr, path=unicode(file_path),
                     lineno=line_number))
         if 'functions' in symbols:
             for func in symbols['functions']:
                 line_number = symbols['functions'][func] - 1
                 results.append(ResultItem(
                     type=FILTERS['functions'], name=func,
                     path=unicode(file_path), lineno=line_number))
     if results:
         mapping_locations[unicode(file_path)] += results
Exemple #13
0
 def get_symbols_for_class(self, file_path, clazzName):
     results = []
     with open(file_path) as f:
         content = f.read()
         ext = file_manager.get_file_extension(file_path)
         #obtain a symbols handler for this file extension
         symbols_handler = settings.get_symbols_handler(ext)
         symbols = symbols_handler.obtain_symbols(content,
             filename=file_path)
         self.__parse_symbols(symbols, results, file_path)
     return results
Exemple #14
0
 def get_symbols_for_class(self, file_path, clazzName):
     results = []
     with open(file_path) as f:
         content = f.read()
         ext = file_manager.get_file_extension(file_path)
         #obtain a symbols handler for this file extension
         symbols_handler = settings.get_symbols_handler(ext)
         symbols = symbols_handler.obtain_symbols(content,
                                                  filename=file_path)
         self.__parse_symbols(symbols, results, file_path)
     return results
 def _load_symbols(self, neditable):
     symbols_handler = settings.get_symbols_handler('py')
     source = neditable.editor.toPlainText()
     source = source.encode(neditable.editor.encoding)
     symbols, symbols_simplified = symbols_handler.obtain_symbols(
         source, simple=True)
     self._symbols_index = sorted(symbols_simplified.keys())
     symbols_simplified = sorted(
         list(symbols_simplified.items()), key=lambda x: x[0])
     self.bar.add_symbols(symbols_simplified)
     line = neditable.editor.textCursor().blockNumber()
     self._set_current_symbol(line, True)
     tree_symbols = IDE.get_service('symbols_explorer')
     tree_symbols.update_symbols_tree(symbols, neditable.file_path)
Exemple #16
0
    def update_explorer(self):
        editorWidget = self.ide.mainContainer.get_actual_editor()
        if editorWidget:
            ext = file_manager.get_file_extension(editorWidget.ID)
            #obtain a symbols handler for this file extension
            symbols_handler = settings.get_symbols_handler(ext)
            if symbols_handler:
                source = unicode(editorWidget.toPlainText())
                symbols = symbols_handler.obtain_symbols(source)
                self.ide.explorer.update_symbols(symbols, editorWidget.ID)

            #TODO: Should we change the code below similar to the code above?
            if ext == 'py' or editorWidget.newDocument:
                self.ide.explorer.update_errors(
                    editorWidget.errors, editorWidget.pep8)
Exemple #17
0
    def update_explorer(self):
        editorWidget = self.ide.mainContainer.get_actual_editor()
        if editorWidget:
            ext = file_manager.get_file_extension(editorWidget.ID)
            #obtain a symbols handler for this file extension
            symbols_handler = settings.get_symbols_handler(ext)
            if symbols_handler:
                source = unicode(editorWidget.toPlainText())
                source = source.encode(editorWidget.encoding)
                symbols = symbols_handler.obtain_symbols(source)
                self.ide.explorer.update_symbols(symbols, editorWidget.ID)

            #TODO: Should we change the code below similar to the code above?
            if ext == 'py' or editorWidget.newDocument:
                self.ide.explorer.update_errors(
                    editorWidget.errors, editorWidget.pep8)
Exemple #18
0
    def _grep_file_locate(self, file_path, file_name):
        #type - file_name - file_path
        global mapping_locations
        if file_manager.get_file_extension(unicode(file_name)) != 'py':
            mapping_locations[unicode(file_path)] = [('!',
                unicode(file_name), unicode(file_path), 0)]
            return
        mapping_locations[unicode(file_path)] = [('@', unicode(file_name),
            unicode(file_path), 0)]

        lines = []
        with open(file_path) as f:
            content = f.read()
            ext = file_manager.get_file_extension(file_path)
            #obtain a symbols handler for this file extension
            symbols_handler = settings.get_symbols_handler(ext)
            symbols = symbols_handler.obtain_symbols(content)
            if "classes" in symbols:
                for claz in symbols['classes']:
                    clazz = symbols['classes'][claz]
                    #type - class name - file_path - lineNumber
                    lines.append(('<', claz, unicode(file_path),
                        clazz[0] - 1))
                    if 'attributes' in clazz[1]:
                        for attr in clazz[1]['attributes']:
                            #type - attribute name - file_path - lineNumber
                            lines.append(('-', attr, unicode(file_path),
                                clazz[1]['attributes'][attr] - 1))
                    if 'functions' in clazz[1]:
                        for func in clazz[1]['functions']:
                            #type - function name - file_path - lineNumber
                            lines.append(('>', func, unicode(file_path),
                                clazz[1]['functions'][func] - 1))
            if 'attributes' in symbols:
                for attr in symbols['attributes']:
                    #type - attribute name - file_path - lineNumber
                    lines.append(('-', attr, unicode(file_path),
                        symbols['attributes'][attr] - 1))
            if 'functions' in symbols:
                for func in symbols['functions']:
                    #type - function name - file_path - lineNumber
                    lines.append(('>', func, unicode(file_path),
                        symbols['functions'][func] - 1))
        if lines:
            mapping_locations[unicode(file_path)] += lines
Exemple #19
0
    def _grep_file_locate(self, file_path, file_name):
        #type - file_name - file_path
        global mapping_locations
        if file_manager.get_file_extension(unicode(file_name)) != 'py':
            mapping_locations[unicode(file_path)] = [('!', unicode(file_name),
                                                      unicode(file_path), 0)]
            return
        mapping_locations[unicode(file_path)] = [('@', unicode(file_name),
                                                  unicode(file_path), 0)]

        lines = []
        with open(file_path) as f:
            content = f.read()
            ext = file_manager.get_file_extension(file_path)
            #obtain a symbols handler for this file extension
            symbols_handler = settings.get_symbols_handler(ext)
            symbols = symbols_handler.obtain_symbols(content)
            if "classes" in symbols:
                for claz in symbols['classes']:
                    clazz = symbols['classes'][claz]
                    #type - class name - file_path - lineNumber
                    lines.append(('<', claz, unicode(file_path), clazz[0] - 1))
                    if 'attributes' in clazz[1]:
                        for attr in clazz[1]['attributes']:
                            #type - attribute name - file_path - lineNumber
                            lines.append(('-', attr, unicode(file_path),
                                          clazz[1]['attributes'][attr] - 1))
                    if 'functions' in clazz[1]:
                        for func in clazz[1]['functions']:
                            #type - function name - file_path - lineNumber
                            lines.append(('>', func, unicode(file_path),
                                          clazz[1]['functions'][func] - 1))
            if 'attributes' in symbols:
                for attr in symbols['attributes']:
                    #type - attribute name - file_path - lineNumber
                    lines.append(('-', attr, unicode(file_path),
                                  symbols['attributes'][attr] - 1))
            if 'functions' in symbols:
                for func in symbols['functions']:
                    #type - function name - file_path - lineNumber
                    lines.append(('>', func, unicode(file_path),
                                  symbols['functions'][func] - 1))
        if lines:
            mapping_locations[unicode(file_path)] += lines
Exemple #20
0
    def update_explorer(self):
        """Update the symbols in the Symbol Explorer when a file is saved."""
        editorWidget = self.ide.mainContainer.get_actual_editor()
        if editorWidget:
            ext = file_manager.get_file_extension(editorWidget.ID)
            #obtain a symbols handler for this file extension
            symbols_handler = settings.get_symbols_handler(ext)
            if symbols_handler:
                source = unicode(editorWidget.toPlainText())
                if editorWidget.encoding is not None:
                    source = source.encode(editorWidget.encoding)
                symbols = symbols_handler.obtain_symbols(source)
                self.ide.explorer.update_symbols(symbols, editorWidget.ID)

            #TODO: Should we change the code below similar to the code above?
            exts = settings.SYNTAX.get('python')['extension']
            if ext in exts or editorWidget.newDocument:
                self.ide.explorer.update_errors(
                    editorWidget.errors, editorWidget.pep8)