vsj0702 commited on
Commit
8c7f7b0
·
verified ·
1 Parent(s): a8a25ed

Working on refresh issue

Browse files
Files changed (1) hide show
  1. app.py +12 -12
app.py CHANGED
@@ -34,8 +34,8 @@ with theme_col:
34
  # Apply theme
35
  colors, ace_theme = apply_theme()
36
 
37
- # Set default code when language changes or editor is empty
38
- prev_lang = st.session_state.get("prev_language", "")
39
  if (
40
  selected_lang != prev_lang
41
  or st.session_state.get("code") is None
@@ -43,21 +43,20 @@ if (
43
  or st.session_state.code.strip() == DEFAULT_SNIPPETS.get(prev_lang, "")
44
  ):
45
  st.session_state.code = DEFAULT_SNIPPETS[selected_lang]
46
-
47
- # Force update the Ace editor value
48
- st.session_state["editor_code"] = st.session_state.code
49
  st.session_state.prev_language = selected_lang
50
- lang = selected_lang # Use `lang` everywhere below
51
 
52
- # Editor + Chatbot layout
 
 
 
53
  gen, bot = st.columns((2, 1), gap="large")
54
  with gen:
55
  st.subheader("Editor")
56
 
57
  code = st_ace.st_ace(
58
- value=st.session_state["editor_code"],
59
- placeholder=f"Start typing your {lang} code…",
60
- language=lang.lower() if lang != "C++" else "c_cpp",
61
  theme=ace_theme,
62
  keybinding="vscode",
63
  font_size=14,
@@ -65,8 +64,9 @@ with gen:
65
  show_gutter=True,
66
  wrap=True,
67
  auto_update=True,
68
- key="editor_code"
69
  )
 
70
  if code != st.session_state.code:
71
  st.session_state.code = code
72
 
@@ -84,7 +84,7 @@ with gen:
84
  out, err, exc = execute_code(
85
  code=st.session_state.code,
86
  stdin=st.session_state.stdin,
87
- language=lang
88
  )
89
  st.session_state.code_output = out
90
  st.session_state.error_output = err or exc
 
34
  # Apply theme
35
  colors, ace_theme = apply_theme()
36
 
37
+ # Initialize code for language
38
+ prev_lang = st.session_state.get("prev_language", None)
39
  if (
40
  selected_lang != prev_lang
41
  or st.session_state.get("code") is None
 
43
  or st.session_state.code.strip() == DEFAULT_SNIPPETS.get(prev_lang, "")
44
  ):
45
  st.session_state.code = DEFAULT_SNIPPETS[selected_lang]
 
 
 
46
  st.session_state.prev_language = selected_lang
 
47
 
48
+ # Generate dynamic editor key so it refreshes
49
+ editor_key = f"editor_{selected_lang}"
50
+
51
+ # Layout: Editor + Chatbot
52
  gen, bot = st.columns((2, 1), gap="large")
53
  with gen:
54
  st.subheader("Editor")
55
 
56
  code = st_ace.st_ace(
57
+ value=st.session_state.code,
58
+ placeholder=f"Start typing your {selected_lang} code…",
59
+ language=selected_lang.lower() if selected_lang != "C++" else "c_cpp",
60
  theme=ace_theme,
61
  keybinding="vscode",
62
  font_size=14,
 
64
  show_gutter=True,
65
  wrap=True,
66
  auto_update=True,
67
+ key=editor_key # key now varies with language
68
  )
69
+
70
  if code != st.session_state.code:
71
  st.session_state.code = code
72
 
 
84
  out, err, exc = execute_code(
85
  code=st.session_state.code,
86
  stdin=st.session_state.stdin,
87
+ language=selected_lang
88
  )
89
  st.session_state.code_output = out
90
  st.session_state.error_output = err or exc