src/eric7/DebugClients/Python/DebugClientBase.py

branch
eric7
changeset 9383
1d9a71952123
parent 9221
bf71ee032bb4
child 9396
06699e5600a3
--- a/src/eric7/DebugClients/Python/DebugClientBase.py	Mon Oct 03 12:14:28 2022 +0200
+++ b/src/eric7/DebugClients/Python/DebugClientBase.py	Mon Oct 03 17:29:30 2022 +0200
@@ -164,8 +164,8 @@
         self.buffer = ""
 
         # The precompiled regexp to filter variables against
-        self.globalsFilterObjects = None
-        self.localsFilterObjects = None
+        self.globalsFilterObjects = (None, False)  # filter regexp, show flag
+        self.localsFilterObjects = (None, False)  # filter regexp, show flag
 
         self._fncache = {}
         self.dircache = []
@@ -1515,7 +1515,7 @@
         filterList = set(filterList or [])
 
         varlist = []
-        patternFilterObjects = (
+        patternFilterObjects, showFlag = (
             self.globalsFilterObjects if scope else self.localsFilterObjects
         )
 
@@ -1530,7 +1530,10 @@
                 key, valtype, rvalue = variabel
 
             # filter based on the filter pattern
-            if patternFilterObjects and patternFilterObjects.match(str(key)):
+            if patternFilterObjects and (
+                (not showFlag and patternFilterObjects.match(str(key)))
+                or (showFlag and not patternFilterObjects.match(str(key)))
+            ):
                 continue
 
             # filter hidden attributes (filter #0)
@@ -1649,15 +1652,24 @@
         @param filterString string of filter patterns separated by ';'
         """
         patternFilterObjects = None
-        if filterString.strip():
-            pattern = filterString.replace(";", "|")
-            with contextlib.suppress(re.error):
-                patternFilterObjects = re.compile(pattern)
+        filterString = filterString.strip()
+        if filterString:
+            if filterString[0] == "~":
+                showFlag = False
+                filterString = filterString[1:].strip()
+            else:
+                showFlag = True
+            if filterString:
+                pattern = filterString.replace(";", "|")
+                with contextlib.suppress(re.error):
+                    patternFilterObjects = re.compile(pattern)
+        else:
+            showFlag = False
 
         if scope:
-            self.globalsFilterObjects = patternFilterObjects
+            self.globalsFilterObjects = (patternFilterObjects, showFlag)
         else:
-            self.localsFilterObjects = patternFilterObjects
+            self.localsFilterObjects = (patternFilterObjects, showFlag)
 
     def __completionList(self, text):
         """

eric ide

mercurial