vsj0702 commited on
Commit
23c1a37
·
verified ·
1 Parent(s): 9706206
Files changed (1) hide show
  1. layout.py +19 -24
layout.py CHANGED
@@ -1,17 +1,15 @@
1
  import streamlit as st
2
 
3
  def init_session_state():
4
- if "dark_mode" not in st.session_state:
5
- st.session_state.dark_mode = False
6
- if "code" not in st.session_state:
7
- st.session_state.code = ""
8
- if "stdin" not in st.session_state:
9
- st.session_state.stdin = ""
10
- if "language" not in st.session_state:
11
- st.session_state.language = "Python" # Default
12
 
13
 
14
  def apply_theme():
 
15
  dark = st.session_state.dark_mode
16
 
17
  colors = {
@@ -23,24 +21,21 @@ def apply_theme():
23
  "shadow": "rgba(0,0,0,0.3)" if dark else "rgba(0,0,0,0.1)",
24
  }
25
 
26
- # Map selected language to Ace supported values
27
- language = st.session_state.get("language", "python").lower()
28
- if language == "c++":
29
- language = "c_cpp"
30
- elif language == "c#":
31
- language = "csharp"
32
- elif language == "javascript":
33
- language = "javascript"
34
- elif language == "python":
35
- language = "python"
36
- elif language == "java":
37
- language = "java"
38
- elif language == "c":
39
- language = "c"
40
-
41
  ace_theme = "monokai" if dark else "chrome"
 
 
 
 
 
 
 
 
 
 
 
42
 
43
- # Inject CSS styles
44
  st.markdown(
45
  f"""
46
  <style>
 
1
  import streamlit as st
2
 
3
  def init_session_state():
4
+ """Set up initial values in session_state if not already defined."""
5
+ st.session_state.setdefault("dark_mode", False)
6
+ st.session_state.setdefault("code", "")
7
+ st.session_state.setdefault("stdin", "")
8
+ st.session_state.setdefault("language", "Python")
 
 
 
9
 
10
 
11
  def apply_theme():
12
+ """Apply the selected theme and return color palette + ACE theme."""
13
  dark = st.session_state.dark_mode
14
 
15
  colors = {
 
21
  "shadow": "rgba(0,0,0,0.3)" if dark else "rgba(0,0,0,0.1)",
22
  }
23
 
24
+ # Normalize ACE editor theme and language
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25
  ace_theme = "monokai" if dark else "chrome"
26
+ lang = st.session_state.get("language", "python").lower()
27
+
28
+ ace_lang_map = {
29
+ "c++": "c_cpp",
30
+ "c#": "csharp",
31
+ "javascript": "javascript",
32
+ "python": "python",
33
+ "java": "java",
34
+ "c": "c"
35
+ }
36
+ ace_lang = ace_lang_map.get(lang, "python") # fallback to python
37
 
38
+ # Inject theme-specific CSS
39
  st.markdown(
40
  f"""
41
  <style>