Spaces:
Sleeping
Sleeping
Working on refresh issue
Browse files
app.py
CHANGED
|
@@ -34,8 +34,8 @@ with theme_col:
|
|
| 34 |
# Apply theme
|
| 35 |
colors, ace_theme = apply_theme()
|
| 36 |
|
| 37 |
-
#
|
| 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 |
-
#
|
|
|
|
|
|
|
|
|
|
| 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
|
| 59 |
-
placeholder=f"Start typing your {
|
| 60 |
-
language=
|
| 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=
|
| 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=
|
| 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
|