AssistantEric/Assistant.py

branch
eric7
changeset 212
24d6bae09db6
parent 210
6b1440b975df
child 216
42ded9008f96
equal deleted inserted replaced
211:548e28c35723 212:24d6bae09db6
11 import re 11 import re
12 12
13 from PyQt6.QtCore import QObject 13 from PyQt6.QtCore import QObject
14 14
15 from eric7.EricWidgets.EricApplication import ericApp 15 from eric7.EricWidgets.EricApplication import ericApp
16 from eric7.QScintilla.Editor import Editor
17 from eric7.Utilities.ModuleParser import PY_SOURCE, Module 16 from eric7.Utilities.ModuleParser import PY_SOURCE, Module
18 17
19 from .APIsManager import APIsManager, ApisNameProject 18 from .APIsManager import APIsManager, ApisNameProject
19
20 try:
21 from eric7.QScintilla.Editor import EditorIconId
22
23 AttributeID = EditorIconId.Attribute
24 AttributeProtectedID = EditorIconId.AttributeProtected
25 AttributePrivateID = EditorIconId.AttributePrivate
26 FromDocumentID = EditorIconId.FromDocument
27 MethodID = EditorIconId.Method
28 MethodProtectedID = EditorIconId.MethodProtected
29 MethodPrivateID = EditorIconId.MethodPrivate
30 except ImportError:
31 # backward compatibility for eric < 24.2
32 from eric7.QScintilla.Editor import Editor
33
34 AttributeID = Editor.AttributeID
35 AttributeProtectedID = Editor.AttributeProtectedID
36 AttributePrivateID = Editor.AttributePrivateID
37 FromDocumentID = Editor.FromDocumentID
38 MethodID = Editor.MethodID
39 MethodProtectedID = Editor.MethodProtectedID
40 MethodPrivateID = Editor.MethodPrivateID
20 41
21 AcsAPIs = 0x0001 42 AcsAPIs = 0x0001
22 AcsDocument = 0x0002 43 AcsDocument = 0x0002
23 AcsProject = 0x0004 44 AcsProject = 0x0004
24 45
48 self.__apisManager = APIsManager(self.__ui, self) 69 self.__apisManager = APIsManager(self.__ui, self)
49 70
50 self.__editors = [] 71 self.__editors = []
51 self.__lastContext = None 72 self.__lastContext = None
52 self.__lastFullContext = None 73 self.__lastFullContext = None
53
54 self.__fromDocumentID = Editor.FromDocumentID
55 74
56 def activate(self): 75 def activate(self):
57 """ 76 """
58 Public method to perform actions upon activation. 77 Public method to perform actions upon activation.
59 """ 78 """
582 for method in cl.methods.values(): 601 for method in cl.methods.values():
583 if method.name == "__init__": 602 if method.name == "__init__":
584 continue 603 continue
585 # determine icon type 604 # determine icon type
586 if method.isPrivate(): 605 if method.isPrivate():
587 iconID = Editor.MethodPrivateID 606 iconID = MethodPrivateID
588 elif method.isProtected(): 607 elif method.isProtected():
589 iconID = Editor.MethodProtectedID 608 iconID = MethodProtectedID
590 else: 609 else:
591 iconID = Editor.MethodID 610 iconID = MethodID
592 if ( 611 if (
593 prefix == "cls" and method.modifier == method.Class 612 prefix == "cls" and method.modifier == method.Class
594 ) or prefix == "self": 613 ) or prefix == "self":
595 comps.append((method.name, cl.name, iconID)) 614 comps.append((method.name, cl.name, iconID))
596 if prefix != "cls": 615 if prefix != "cls":
597 for attribute in cl.attributes.values(): 616 for attribute in cl.attributes.values():
598 # determine icon type 617 # determine icon type
599 if attribute.isPrivate(): 618 if attribute.isPrivate():
600 iconID = Editor.AttributePrivateID 619 iconID = AttributePrivateID
601 elif attribute.isProtected(): 620 elif attribute.isProtected():
602 iconID = Editor.AttributeProtectedID 621 iconID = AttributeProtectedID
603 else: 622 else:
604 iconID = Editor.AttributeID 623 iconID = AttributeID
605 comps.append((attribute.name, cl.name, iconID)) 624 comps.append((attribute.name, cl.name, iconID))
606 for attribute in cl.globals.values(): 625 for attribute in cl.globals.values():
607 # determine icon type 626 # determine icon type
608 if attribute.isPrivate(): 627 if attribute.isPrivate():
609 iconID = Editor.AttributePrivateID 628 iconID = AttributePrivateID
610 elif attribute.isProtected(): 629 elif attribute.isProtected():
611 iconID = Editor.AttributeProtectedID 630 iconID = AttributeProtectedID
612 else: 631 else:
613 iconID = Editor.AttributeID 632 iconID = AttributeID
614 comps.append((attribute.name, cl.name, iconID)) 633 comps.append((attribute.name, cl.name, iconID))
615 634
616 if word != prefix: 635 if word != prefix:
617 completionsList.extend( 636 completionsList.extend(
618 [ 637 [
663 ]: 682 ]:
664 # determine icon type 683 # determine icon type
665 if method.isPrivate(): 684 if method.isPrivate():
666 if doHierarchy: 685 if doHierarchy:
667 continue 686 continue
668 iconID = Editor.MethodPrivateID 687 iconID = MethodPrivateID
669 elif method.isProtected(): 688 elif method.isProtected():
670 iconID = Editor.MethodProtectedID 689 iconID = MethodProtectedID
671 else: 690 else:
672 iconID = Editor.MethodID 691 iconID = MethodID
673 comps.append((method.name, cl.name, iconID)) 692 comps.append((method.name, cl.name, iconID))
674 for attribute in cl.globals.values(): 693 for attribute in cl.globals.values():
675 # determine icon type 694 # determine icon type
676 if attribute.isPrivate(): 695 if attribute.isPrivate():
677 iconID = Editor.AttributePrivateID 696 iconID = AttributePrivateID
678 elif attribute.isProtected(): 697 elif attribute.isProtected():
679 iconID = Editor.AttributeProtectedID 698 iconID = AttributeProtectedID
680 else: 699 else:
681 iconID = Editor.AttributeID 700 iconID = AttributeID
682 comps.append((attribute.name, cl.name, iconID)) 701 comps.append((attribute.name, cl.name, iconID))
683 702
684 if word != prefix: 703 if word != prefix:
685 completionsList.extend( 704 completionsList.extend(
686 [ 705 [
745 completion 764 completion
746 and completion not in completionsList 765 and completion not in completionsList
747 and completion != word 766 and completion != word
748 ): 767 ):
749 completionsList.append( 768 completionsList.append(
750 "{0}?{1}".format(completion, self.__fromDocumentID) 769 "{0}?{1}".format(completion, FromDocumentID)
751 ) 770 )
752 771
753 res = editor.findNextTarget() 772 res = editor.findNextTarget()
754 773
755 completionsList.sort() 774 completionsList.sort()

eric ide

mercurial