src/eric7/QScintilla/Editor.py

branch
eric7
changeset 10499
71208bcc7d99
parent 10474
c18ca679259d
child 10501
234702836442
equal deleted inserted replaced
10498:6bbe8e2210d7 10499:71208bcc7d99
488 editor.addClone(self) 488 editor.addClone(self)
489 489
490 self.gotoLine(1) 490 self.gotoLine(1)
491 491
492 # connect the mouse hover signals 492 # connect the mouse hover signals
493 # mouse hover for the editor margins
494 self.SCN_DWELLSTART.connect(self.__marginHoverStart)
495 self.SCN_DWELLEND.connect(self.__marginHoverEnd)
496
497 # mouse hover help for the editor text
493 self.SCN_DWELLSTART.connect(self.__showMouseHoverHelp) 498 self.SCN_DWELLSTART.connect(self.__showMouseHoverHelp)
494 self.SCN_DWELLEND.connect(self.__cancelMouseHoverHelp) 499 self.SCN_DWELLEND.connect(self.__cancelMouseHoverHelp)
495 self.__mouseHoverHelp = None 500 self.__mouseHoverHelp = None
496 self.__showingMouseHoverHelp = False 501 self.__showingMouseHoverHelp = False
497 502
3956 elif margin == self.__indicMargin: 3961 elif margin == self.__indicMargin:
3957 if self.markersAtLine(line) & (1 << self.syntaxerror): 3962 if self.markersAtLine(line) & (1 << self.syntaxerror):
3958 self.__showSyntaxError(line) 3963 self.__showSyntaxError(line)
3959 elif self.markersAtLine(line) & (1 << self.warning): 3964 elif self.markersAtLine(line) & (1 << self.warning):
3960 self.__showWarning(line) 3965 self.__showWarning(line)
3966
3967 @pyqtSlot(int, int, int)
3968 def __marginHoverStart(self, pos, x, y):
3969 """
3970 Private slot showing the text of a syntax error or a warning marker.
3971
3972 @param pos mouse position into the document
3973 @type int
3974 @param x x-value of mouse screen position
3975 @type int
3976 @param y y-value of mouse screen position
3977 @type int
3978 """
3979 from PyQt6.QtGui import QCursor
3980 from PyQt6.QtWidgets import QToolTip
3981 margin = self.__marginNumber(x)
3982 if margin == self.__indicMargin:
3983 # determine width of all margins; needed to calculate document line
3984 width = 0
3985 for margin in range(5):
3986 width += self.marginWidth(margin)
3987
3988 message = ""
3989 line = self.lineIndexFromPoint(QPoint(width + 1, y))[0]
3990 if self.markersAtLine(line) & (1 << self.syntaxerror):
3991 for handle in self.syntaxerrors:
3992 if self.markerLine(handle) == line:
3993 message = "\n".join([e[0] for e in self.syntaxerrors[handle]])
3994 break
3995 elif self.markersAtLine(line) & (1 << self.warning):
3996 for handle in self._warnings:
3997 if self.markerLine(handle) == line:
3998 message = "\n".join([w[0] for w in self._warnings[handle]])
3999 break
4000
4001 if message:
4002 QToolTip.showText(QCursor.pos(), message)
4003
4004 @pyqtSlot()
4005 def __marginHoverEnd(self):
4006 """
4007 Private slot cancelling the display of syntax error or a warning marker text.
4008 """
4009 from PyQt6.QtWidgets import QToolTip
4010 QToolTip.hideText()
3961 4011
3962 @pyqtSlot() 4012 @pyqtSlot()
3963 def handleMonospacedEnable(self): 4013 def handleMonospacedEnable(self):
3964 """ 4014 """
3965 Public slot to handle the Use Monospaced Font context menu entry. 4015 Public slot to handle the Use Monospaced Font context menu entry.
6695 self.syntaxCheckService is None 6745 self.syntaxCheckService is None
6696 or fileType not in self.syntaxCheckService.getLanguages() 6746 or fileType not in self.syntaxCheckService.getLanguages()
6697 ): 6747 ):
6698 return 6748 return
6699 6749
6700 if Preferences.getEditor("AutoCheckSyntax") and Preferences.getEditor( 6750 if Preferences.getEditor("OnlineSyntaxCheck"):
6701 "OnlineSyntaxCheck"
6702 ):
6703 self.__onlineSyntaxCheckTimer.stop() 6751 self.__onlineSyntaxCheckTimer.stop()
6704 6752
6705 if self.isPy3File(): 6753 if self.isPy3File():
6706 additionalBuiltins = ( 6754 additionalBuiltins = (
6707 self.project.getData("CHECKERSPARMS", "SyntaxChecker", {}).get( 6755 self.project.getData("CHECKERSPARMS", "SyntaxChecker", {}).get(

eric ide

mercurial