16 from ..action.shortcut
import localize_shortcuts
17 from ..utils
import highlightmatcher, html_escape
24 def __init__(self, cell_content, cell_position, for_loop=False):
30 content_type = property
63 [ContentType.EMPTY, ContentType.COMMENTED]
66 return highlightmatcher.highlight_matcher(value,
74 return html_escape(str(tip)).replace(
'\n',
'<br />')
79 TOO_MANY_ARGUMENTS =
"Too many arguments"
81 "Keyword not found! For possible corrections press <%s>" % CTRL_LABEL
82 VARIABLE_ASSIGMENT =
"Variable assignment"
83 UNKNOWN_VARIABLE =
"\n\nUnknown variable"
85 ARGUMENT =
"Argument: %s"
86 OPTIONAL_ARGUMENT =
"Optional argument: %s"
87 MISSING_ARGUMENT =
"Missing argument: %s"
89 KEYWORD =
"Keyword from: %s\n\n" + (
"Press <%s> for details" % CTRL_LABEL)
95 message =
'' if cell.content_type != ContentType.UNKNOWN_VARIABLE \
98 CellType.ASSIGN: self.
_assign_assign,
99 CellType.KEYWORD: self.
_keyword_keyword,
100 CellType.MANDATORY: self.
_mandatory_mandatory,
101 CellType.OPTIONAL: self.
_optional_optional,
103 CellType.UNKNOWN: self.
_unknown_unknown,
104 CellType.END: self.
_keyword_keyword,
107 return (handlers[cell.cell_type](cell) + message).strip()
110 if cell.too_many_arguments():
115 if cell.argument_missing():
117 return self.
ARGUMENTARGUMENT % cell.arg_name
123 if cell.content_type == ContentType.STRING:
125 if cell.content_type
in ContentType.KEYWORDS:
126 return self.
KEYWORDKEYWORD % cell.source
136 return bool(self.
messagemessage)
142 class _ForLoopTooltipMessage(_TooltipMessage):
144 TOO_MANY_ARGUMENTS = "Too many parameters in for loop"
146 def _get_message(self, cell):
147 if cell.too_many_arguments():
148 return self.TOO_MANY_ARGUMENTS
169 USER_KEYWORD =
'USER_KEYWORD'
170 LIBRARY_KEYWORD =
'LIBRARY_KEYWORD'
180 CONTINUE =
'CONTINUE'
181 KEYWORDS = (USER_KEYWORD, LIBRARY_KEYWORD, END, FOR, IF, ELSE, ELSEIF, WHILE, TRY, EXCEPT, BREAK, CONTINUE)
182 VARIABLE =
'VARIABLE'
183 UNKNOWN_VARIABLE =
'UNKNOWN_VARIABLE'
184 COMMENTED =
'COMMENTED'
192 MANDATORY =
'MANDATORY'
193 OPTIONAL =
'OPTIONAL'
194 MUST_BE_EMPTY =
'MUST_BE_EMPTY'
def __init__(self, type, value, source=None)
def argument_missing(self)
def too_many_arguments(self)
def __init__(self, cell_content, cell_position, for_loop=False)
def __init__(self, type, argument_name)
def localize_shortcuts(string)
def html_escape(text, linkify=True)