Skip to content

Commit 8e5b276

Browse files
Work in progress, apply language in Text Editor
1 parent 77a79da commit 8e5b276

File tree

2 files changed

+39
-2
lines changed

2 files changed

+39
-2
lines changed

src/robotide/editor/texteditor.py

+36-1
Original file line numberDiff line numberDiff line change
@@ -292,6 +292,33 @@ def __hash__(self):
292292
return hash(repr(self))
293293

294294

295+
def read_language(content):
296+
from tempfile import NamedTemporaryFile
297+
from ..lib.compat.parsing.language import read as lread
298+
299+
with NamedTemporaryFile(delete_on_close=False) as fp:
300+
fp.write(content)
301+
fp.close()
302+
with open(fp.name, mode='rb') as fl:
303+
lang = lread(fl)
304+
return lang
305+
306+
307+
def obtain_language(existing, content):
308+
try:
309+
set_lang = shared_memory.ShareableList(name="language")
310+
except AttributeError: # Unittests fails here
311+
set_lang = []
312+
doc_lang = read_language(content)
313+
print(f"DEBUG: textedit.py validate_and_update obtain_language={doc_lang}")
314+
if doc_lang is not None:
315+
mlang = Language.from_name(doc_lang)
316+
set_lang = [mlang.code]
317+
else:
318+
set_lang[0] = existing if existing is not None else 'en'
319+
return set_lang
320+
321+
295322
class DataValidationHandler(object):
296323

297324
def __init__(self, plugin, lang=None):
@@ -305,8 +332,16 @@ def set_editor(self, editor):
305332
self._editor = editor
306333

307334
def validate_and_update(self, data, text, lang='en'):
308-
self._doc_language = lang
309335
m_text = text.decode("utf-8")
336+
if "Language: " in m_text:
337+
print(f"DEBUG: textedit.py validate_and_update Content has Language setting is {lang}\n"
338+
f"Calling obtain_language: ")
339+
doc_lang = obtain_language(lang, text)
340+
self._doc_language = doc_lang
341+
print(f"DEBUG: textedit.py validate_and_update AFTER obtain_language={doc_lang}")
342+
else:
343+
self._doc_language = lang if lang is not None else 'en'
344+
310345
result = self._sanity_check(data, m_text)
311346
if isinstance(result, tuple):
312347
handled = self._handle_sanity_check_failure(result)

src/robotide/ui/treeplugin.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,7 @@ def on_show_tree(self, event):
165165
html_font_face = self.settings.get('font face', '')
166166
html_font_size = self.settings.get('font size', 11)
167167
self._tree.Show(True)
168+
print(f"DEBUG: treeplugin on_show_tree {html_font_face=} {html_font_size=}")
168169
self._tree.SetMinSize(wx.Size(200, 225))
169170
# self.aui_mgr.DetachPane(self._tree)
170171
# self.aui_mgr.Update()
@@ -177,7 +178,8 @@ def on_show_tree(self, event):
177178
self._tree.SetBackgroundStyle(wx.BG_STYLE_SYSTEM)
178179
self._tree.SetBackgroundColour(html_background)
179180
self._tree.SetForegroundColour(html_foreground)
180-
self.font = self._tree.GetFont()
181+
# self.font = self._tree.GetFont()
182+
self._tree.SetFont(self.font)
181183
if html_font_face is not None:
182184
self.font.SetFaceName(html_font_face)
183185
self.font.SetPointSize(html_font_size)

0 commit comments

Comments
 (0)