src/eric7/Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py

branch
server
changeset 10630
552a790fd9bc
parent 10596
ea35c92a3c7c
child 10704
27d21e5163b8
equal deleted inserted replaced
10629:b0d14cba79b1 10630:552a790fd9bc
296 Public slot to start the syntax check for the project sources browser. 296 Public slot to start the syntax check for the project sources browser.
297 297
298 @param fn file or list of files or directory to be checked 298 @param fn file or list of files or directory to be checked
299 @type str or list of str 299 @type str or list of str
300 """ 300 """
301 isdir = isinstance(fn, str) and (
302 self.__remotefsInterface.isdir(fn)
303 if FileSystemUtilities.isRemoteFileName(fn)
304 else os.path.isdir(fn)
305 )
306
301 if isinstance(fn, list): 307 if isinstance(fn, list):
302 files = fn 308 files = fn
303 elif os.path.isdir(fn): 309 elif isdir:
304 files = FileSystemUtilities.direntries( 310 if FileSystemUtilities.isRemoteFileName(fn):
305 fn, 311 files = self.__remotefsInterface.direntries(
306 filesonly=True, 312 fn,
307 pattern=[ 313 filesonly=True,
308 "*{0}".format(ext) 314 pattern=[
309 for ext in self.syntaxCheckService.getExtensions() 315 "*{0}".format(ext)
310 ], 316 for ext in self.syntaxCheckService.getExtensions()
311 followsymlinks=False, 317 ],
312 ) 318 followsymlinks=False,
319 )
320 else:
321 files = FileSystemUtilities.direntries(
322 fn,
323 filesonly=True,
324 pattern=[
325 "*{0}".format(ext)
326 for ext in self.syntaxCheckService.getExtensions()
327 ],
328 followsymlinks=False,
329 )
313 else: 330 else:
314 files = [fn] 331 files = [fn]
315 332
316 if files: 333 if files:
317 if self.__project is None: 334 if self.__project is None:
362 ) 379 )
363 self.showButton.setEnabled(False) 380 self.showButton.setEnabled(False)
364 self.checkProgress.setVisible(True) 381 self.checkProgress.setVisible(True)
365 QApplication.processEvents() 382 QApplication.processEvents()
366 383
384 isdir = isinstance(fn, str) and (
385 self.__remotefsInterface.isdir(fn)
386 if FileSystemUtilities.isRemoteFileName(fn)
387 else os.path.isdir(fn)
388 )
389
367 if isinstance(fn, list): 390 if isinstance(fn, list):
368 self.files = fn 391 self.files = fn
369 elif os.path.isdir(fn): 392 elif isdir:
370 self.files = [] 393 self.files = []
371 for ext in self.syntaxCheckService.getExtensions(): 394 for ext in self.syntaxCheckService.getExtensions():
372 self.files.extend( 395 self.files.extend(
373 FileSystemUtilities.direntries(fn, True, "*{0}".format(ext), 0) 396 self.__remotefsInterface.direntries(
397 fn, True, "*{0}".format(ext), False
398 )
399 if FileSystemUtilities.isRemoteFileName(fn)
400 else FileSystemUtilities.direntries(
401 fn, True, "*{0}".format(ext), False
402 )
374 ) 403 )
375 else: 404 else:
376 self.files = [fn] 405 self.files = [fn]
377 406
378 self.__errorItem = None 407 self.__errorItem = None
466 QApplication.processEvents() 495 QApplication.processEvents()
467 self.__timenow = time.monotonic() 496 self.__timenow = time.monotonic()
468 497
469 try: 498 try:
470 source = ( 499 source = (
471 self.__remotefsInterface.readEncodedFile(self.filename)[0] 500 self.__remotefsInterface.readEncodedFile(filename)[0]
472 if FileSystemUtilities.isRemoteFileName(self.filename) 501 if FileSystemUtilities.isRemoteFileName(filename)
473 else Utilities.readEncodedFile(filename)[0] 502 else Utilities.readEncodedFile(filename)[0]
474 ) 503 )
475 source = Utilities.normalizeCode(source) 504 source = Utilities.normalizeCode(source)
476 except (OSError, UnicodeError) as msg: 505 except (OSError, UnicodeError) as msg:
477 self.noResults = False 506 self.noResults = False
697 return 726 return
698 727
699 vm = ericApp().getObject("ViewManager") 728 vm = ericApp().getObject("ViewManager")
700 729
701 if itm.parent(): 730 if itm.parent():
702 fn = os.path.abspath(itm.data(0, self.filenameRole)) 731 fn = itm.data(0, self.filenameRole)
703 lineno = itm.data(0, self.lineRole) 732 lineno = itm.data(0, self.lineRole)
704 index = itm.data(0, self.indexRole) 733 index = itm.data(0, self.indexRole)
705 error = itm.data(0, self.errorRole) 734 error = itm.data(0, self.errorRole)
706 735
707 vm.openSourceFile(fn, lineno) 736 vm.openSourceFile(fn, lineno)
710 if itm.data(0, self.warningRole): 739 if itm.data(0, self.warningRole):
711 editor.toggleWarning(lineno, 0, True, error) 740 editor.toggleWarning(lineno, 0, True, error)
712 else: 741 else:
713 editor.toggleSyntaxError(lineno, index, True, error, show=True) 742 editor.toggleSyntaxError(lineno, index, True, error, show=True)
714 else: 743 else:
715 fn = os.path.abspath(itm.data(0, self.filenameRole)) 744 fn = itm.data(0, self.filenameRole)
716 vm.openSourceFile(fn) 745 vm.openSourceFile(fn)
717 editor = vm.getOpenEditor(fn) 746 editor = vm.getOpenEditor(fn)
718 for index in range(itm.childCount()): 747 for index in range(itm.childCount()):
719 citm = itm.child(index) 748 citm = itm.child(index)
720 lineno = citm.data(0, self.lineRole) 749 lineno = citm.data(0, self.lineRole)
742 if len(selectedIndexes) == 0: 771 if len(selectedIndexes) == 0:
743 selectedIndexes = list(range(self.resultList.topLevelItemCount())) 772 selectedIndexes = list(range(self.resultList.topLevelItemCount()))
744 for index in selectedIndexes: 773 for index in selectedIndexes:
745 itm = self.resultList.topLevelItem(index) 774 itm = self.resultList.topLevelItem(index)
746 if itm.data(0, self.filenameRole) is not None: 775 if itm.data(0, self.filenameRole) is not None:
747 fn = os.path.abspath(itm.data(0, self.filenameRole)) 776 fn = itm.data(0, self.filenameRole)
748 vm.openSourceFile(fn, 1) 777 vm.openSourceFile(fn, 1)
749 editor = vm.getOpenEditor(fn) 778 editor = vm.getOpenEditor(fn)
750 editor.clearSyntaxError() 779 editor.clearSyntaxError()
751 editor.clearFlakesWarnings() 780 editor.clearFlakesWarnings()
752 for cindex in range(itm.childCount()): 781 for cindex in range(itm.childCount()):
762 # go through the list again to clear syntax error and 791 # go through the list again to clear syntax error and
763 # flakes warning markers for files, that are ok 792 # flakes warning markers for files, that are ok
764 errorFiles = [] 793 errorFiles = []
765 for index in range(self.resultList.topLevelItemCount()): 794 for index in range(self.resultList.topLevelItemCount()):
766 itm = self.resultList.topLevelItem(index) 795 itm = self.resultList.topLevelItem(index)
767 errorFiles.append(os.path.abspath(itm.data(0, self.filenameRole))) 796 errorFiles.append(itm.data(0, self.filenameRole))
768 for fn in vm.getOpenFilenames(): 797 for fn in vm.getOpenFilenames():
769 if fn not in errorFiles: 798 if fn not in errorFiles:
770 editor = vm.getOpenEditor(fn) 799 editor = vm.getOpenEditor(fn)
771 editor.clearSyntaxError() 800 editor.clearSyntaxError()
772 editor.clearFlakesWarnings() 801 editor.clearFlakesWarnings()

eric ide

mercurial