eric6/Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py

changeset 8243
cc717c2ae956
parent 8240
93b8a353c4bf
child 8259
2bbec88047dd
equal deleted inserted replaced
8242:aa713ac50c0d 8243:cc717c2ae956
392 392
393 @return string to be used for an indentation (string) 393 @return string to be used for an indentation (string)
394 """ 394 """
395 sio = StringIO("".join(self.__source)) 395 sio = StringIO("".join(self.__source))
396 indentWord = " " # default in case of failure 396 indentWord = " " # default in case of failure
397 try: 397 with contextlib.suppress(SyntaxError, tokenize.TokenError):
398 for token in tokenize.generate_tokens(sio.readline): 398 for token in tokenize.generate_tokens(sio.readline):
399 if token[0] == tokenize.INDENT: 399 if token[0] == tokenize.INDENT:
400 indentWord = token[1] 400 indentWord = token[1]
401 break 401 break
402 except (SyntaxError, tokenize.TokenError):
403 pass
404 return indentWord 402 return indentWord
405 403
406 def __getIndent(self, line): 404 def __getIndent(self, line):
407 """ 405 """
408 Private method to get the indentation string. 406 Private method to get the indentation string.
425 source = "".join(self.__source) 423 source = "".join(self.__source)
426 sio = StringIO(source) 424 sio = StringIO(source)
427 self.__multiLineNumbers = set() 425 self.__multiLineNumbers = set()
428 self.__docLineNumbers = set() 426 self.__docLineNumbers = set()
429 previousTokenType = '' 427 previousTokenType = ''
430 try: 428 with contextlib.suppress(SyntaxError, tokenize.TokenError):
431 for t in tokenize.generate_tokens(sio.readline): 429 for t in tokenize.generate_tokens(sio.readline):
432 tokenType = t[0] 430 tokenType = t[0]
433 startRow = t[2][0] 431 startRow = t[2][0]
434 endRow = t[3][0] 432 endRow = t[3][0]
435 433
440 else: 438 else:
441 self.__docLineNumbers |= set( 439 self.__docLineNumbers |= set(
442 range(startRow, 1 + endRow)) 440 range(startRow, 1 + endRow))
443 441
444 previousTokenType = tokenType 442 previousTokenType = tokenType
445 except (SyntaxError, tokenize.TokenError):
446 pass
447 443
448 return self.__multiLineNumbers, self.__docLineNumbers 444 return self.__multiLineNumbers, self.__docLineNumbers
449 445
450 def __fixReindent(self, line, pos, logical): 446 def __fixReindent(self, line, pos, logical):
451 """ 447 """

eric ide

mercurial