eric6/Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCodeSelectionDialog.py

changeset 7613
382f89c11e27
parent 7611
d546c4e72f52
child 7615
ca2949b1a29a
equal deleted inserted replaced
7612:ca1ce1e0fcff 7613:382f89c11e27
5 5
6 """ 6 """
7 Module implementing a dialog to select code style message codes. 7 Module implementing a dialog to select code style message codes.
8 """ 8 """
9 9
10 import textwrap
10 11
11 from PyQt5.QtCore import Qt 12 from PyQt5.QtCore import Qt
12 from PyQt5.QtWidgets import QDialog, QTreeWidgetItem 13 from PyQt5.QtWidgets import QDialog, QTreeWidgetItem
13 14
14 from .Ui_CodeStyleCodeSelectionDialog import Ui_CodeStyleCodeSelectionDialog 15 from .Ui_CodeStyleCodeSelectionDialog import Ui_CodeStyleCodeSelectionDialog
16
17 from .translations import getMessageCodes, getTranslatedMessage
15 18
16 import UI.PixmapCache 19 import UI.PixmapCache
17 20
18 21
19 class CodeStyleCodeSelectionDialog(QDialog, Ui_CodeStyleCodeSelectionDialog): 22 class CodeStyleCodeSelectionDialog(QDialog, Ui_CodeStyleCodeSelectionDialog):
35 @type QWidget 38 @type QWidget
36 """ 39 """
37 super(CodeStyleCodeSelectionDialog, self).__init__(parent) 40 super(CodeStyleCodeSelectionDialog, self).__init__(parent)
38 self.setupUi(self) 41 self.setupUi(self)
39 42
43 textWrapper = textwrap.TextWrapper(width=60)
44
40 self.codeTable.headerItem().setText(self.codeTable.columnCount(), "") 45 self.codeTable.headerItem().setText(self.codeTable.columnCount(), "")
41 codeList = [code.strip() for code in codes.split(",") if code.strip()] 46 codeList = [code.strip() for code in codes.split(",") if code.strip()]
42 if categories: 47 if categories:
43 codeList = [code for code in codeList if not code[0] in categories] 48 codeList = [code for code in codeList if not code[0] in categories]
44
45 from .translations import _messages, _messages_sample_args
46 from .Security import translations as s_translations
47 49
48 if showFixCodes: 50 if showFixCodes:
49 from .CodeStyleFixer import FixableCodeStyleIssues 51 from .CodeStyleFixer import FixableCodeStyleIssues
50 selectableCodes = FixableCodeStyleIssues 52 selectableCodes = FixableCodeStyleIssues
51 else: 53 else:
52 selectableCodes = ( 54 selectableCodes = (
53 [x for x in list(_messages.keys()) 55 [x for x in getMessageCodes() if not x.startswith('FIX')]
54 if not x.startswith('FIX')] +
55 [x for x in list(s_translations._messages.keys())]
56 ) 56 )
57 if categories: 57 if categories:
58 # filter by category 58 # filter by category
59 selectableCodes = [x for x in selectableCodes 59 selectableCodes = [x for x in selectableCodes
60 if not x[0] in categories] 60 if not x[0] in categories]
61 for code in sorted(selectableCodes): 61 for code in sorted(selectableCodes):
62 if code in _messages_sample_args: 62 message = getTranslatedMessage(code, [], example=True)
63 message = _messages[code].format(*_messages_sample_args[code]) 63 if message is None:
64 elif code in _messages:
65 message = _messages[code]
66 elif code in s_translations._messages_sample_args:
67 message = s_translations._messages[code].format(
68 *s_translations._messages_sample_args)
69 elif code in s_translations._messages:
70 message = s_translations._messages[code]
71 else:
72 continue 64 continue
73 itm = QTreeWidgetItem(self.codeTable, [code, message]) 65 itm = QTreeWidgetItem(self.codeTable, [
66 code, "\n".join(textWrapper.wrap(message))])
74 if code.startswith(("W", "C", "M")): 67 if code.startswith(("W", "C", "M")):
75 itm.setIcon(0, UI.PixmapCache.getIcon("warning")) 68 itm.setIcon(0, UI.PixmapCache.getIcon("warning"))
76 elif code.startswith("E"): 69 elif code.startswith("E"):
77 itm.setIcon(0, UI.PixmapCache.getIcon("syntaxError")) 70 itm.setIcon(0, UI.PixmapCache.getIcon("syntaxError"))
78 elif code.startswith(("A", "N")): 71 elif code.startswith(("A", "N")):

eric ide

mercurial