# HG changeset patch
# User Edouard Tisserant
# Date 1553248624 -3600
# Node ID 6bfc8a9bf0e76ebb18ad9ae71c54856b71302f86
# Parent  f47e397e9b61a57864b228465eb54e0f65d42cae
WIP adding searching capabilities in python files. was done :
    - added search in body of Code File Tree Nodes (moved editor code so that we CTN search can have the same sections text layout as editor to search in)

diff -r f47e397e9b61 -r 6bfc8a9bf0e7 CodeFileTreeNode.py
--- a/CodeFileTreeNode.py	Thu Mar 21 14:00:26 2019 +0100
+++ b/CodeFileTreeNode.py	Fri Mar 22 10:57:04 2019 +0100
@@ -37,6 +37,7 @@
 from ConfigTreeNode import XSDSchemaErrorMessage
 
 from plcopen.plcopen import TestTextElement
+from editors.CodeFileEditor import GetSectionsText
 
 CODEFILE_XSD = """<?xml version="1.0" encoding="ISO-8859-1" ?>
 <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
@@ -221,9 +222,10 @@
             varname = var["Name"]
             results.extend([((tagname, "var_inout", index, "name"),) + result
                             for result in TestTextElement(varname, criteria)])
-        print("FFFFFFFFFF", results)
-        return results + [((self.CTNFullName(),"var_inout",1,"name"), (0,2),(0,4),"a_cow"),
-                ((self.CTNFullName(),"body"), (1,12),(1,15),"Bitch I'm a cow !")]
+        results.extend([((tagname, "body"),) + result
+                        for result in TestTextElement(
+                            GetSectionsText(self, lambda x:""), criteria)])
+        return results
 
 # -------------------------------------------------------------------------------
 #                      Current Buffering Management Functions
diff -r f47e397e9b61 -r 6bfc8a9bf0e7 editors/CodeFileEditor.py
--- a/editors/CodeFileEditor.py	Thu Mar 21 14:00:26 2019 +0100
+++ b/editors/CodeFileEditor.py	Fri Mar 22 10:57:04 2019 +0100
@@ -56,6 +56,21 @@
 EDGE_COLUMN = 80
 
 
+def GetSectionsText(controler, sections_headers):
+    parts = controler.GetTextParts()
+    text = ""
+    for section in controler.SECTIONS_NAMES:
+        text += sections_headers(section)
+        if parts[section] == "":
+            text += "\n"
+        else:
+            if not parts[section].startswith("\n"):
+                text += "\n"
+            text += parts[section]
+            if not parts[section].endswith("\n"):
+                text += "\n"
+    return text
+
 class CodeEditor(CustomStyledTextCtrl):
 
     KEYWORDS = []
@@ -239,20 +254,9 @@
             self.CurrentAction = None
 
     def GetCodeText(self):
-        parts = self.Controler.GetTextParts()
-        text = ""
-        for section in self.Controler.SECTIONS_NAMES:
-            section_comments = self.SectionsComments[section]
-            text += section_comments["comment"]
-            if parts[section] == "":
-                text += "\n"
-            else:
-                if not parts[section].startswith("\n"):
-                    text += "\n"
-                text += parts[section]
-                if not parts[section].endswith("\n"):
-                    text += "\n"
-        return text
+        return GetSectionsText(
+            self.Controler, 
+            lambda section : self.SectionsComments[section]["comment"])
 
     def RefreshView(self, scroll_to_highlight=False):
         self.ResetBuffer()