@@ -78,63 +78,63 @@ const CollaborativeEditor = forwardRef(
78
78
) => {
79
79
const editorRef = useRef ( null ) ;
80
80
// const providerRef = useRef<WebrtcProvider | null>(null);
81
- const [ selectedLanguage , setSelectedLanguage ] = useState ( "JavaScript " ) ;
81
+ const [ selectedLanguage , setSelectedLanguage ] = useState ( "Python " ) ;
82
82
let sessionEndNotified = false ;
83
83
84
84
const languageConf = new Compartment ( ) ;
85
85
86
86
// Referenced: https://codemirror.net/examples/config/#dynamic-configuration
87
- const autoLanguage = EditorState . transactionExtender . of ( ( tr ) => {
88
- if ( ! tr . docChanged ) return null ;
89
-
90
- const snippet = tr . newDoc . sliceString ( 0 , 100 ) ;
91
-
92
- // Handle code change
93
- props . onCodeChange ( tr . newDoc . toString ( ) ) ;
94
-
95
- // Test for various language
96
- const docIsPython = / ^ \s * ( d e f | c l a s s ) \s / . test ( snippet ) ;
97
- const docIsJava = / ^ \s * ( c l a s s | p u b l i c \s + s t a t i c \s + v o i d \s + m a i n ) \s / . test (
98
- snippet
99
- ) ; // Java has some problems
100
- const docIsCpp = / ^ \s * ( # i n c l u d e | n a m e s p a c e | i n t \s + m a i n ) \s / . test ( snippet ) ; // Yet to test c++
101
- const docIsGo = / ^ ( p a c k a g e | i m p o r t | f u n c | t y p e | v a r | c o n s t ) \s / . test ( snippet ) ;
102
-
103
- let newLanguage ;
104
- let languageType ;
105
- let languageLabel ;
106
-
107
- if ( docIsPython ) {
108
- newLanguage = python ( ) ;
109
- languageLabel = "Python" ;
110
- languageType = pythonLanguage ;
111
- } else if ( docIsJava ) {
112
- newLanguage = java ( ) ;
113
- languageLabel = "Java" ;
114
- languageType = javaLanguage ;
115
- } else if ( docIsGo ) {
116
- newLanguage = go ( ) ;
117
- languageLabel = "Go" ;
118
- languageType = goLanguage ;
119
- } else if ( docIsCpp ) {
120
- newLanguage = cpp ( ) ;
121
- languageLabel = "C++" ;
122
- languageType = cppLanguage ;
123
- } else {
124
- newLanguage = javascript ( ) ; // Default to JavaScript
125
- languageLabel = "JavaScript" ;
126
- languageType = javascriptLanguage ;
127
- }
128
-
129
- const stateLanguage = tr . startState . facet ( language ) ;
130
- if ( languageType == stateLanguage ) return null ;
131
-
132
- setSelectedLanguage ( languageLabel ) ;
133
-
134
- return {
135
- effects : languageConf . reconfigure ( newLanguage ) ,
136
- } ;
137
- } ) ;
87
+ // const autoLanguage = EditorState.transactionExtender.of((tr) => {
88
+ // if (!tr.docChanged) return null;
89
+
90
+ // const snippet = tr.newDoc.sliceString(0, 100);
91
+
92
+ // // Handle code change
93
+ // props.onCodeChange(tr.newDoc.toString());
94
+
95
+ // // Test for various language
96
+ // const docIsPython = /^\s*(def|class)\s/.test(snippet);
97
+ // const docIsJava = /^\s*(class|public\s+static\s+void\s+main)\s/.test(
98
+ // snippet
99
+ // ); // Java has some problems
100
+ // const docIsCpp = /^\s*(#include|namespace|int\s+main)\s/.test(snippet); // Yet to test c++
101
+ // const docIsGo = /^(package|import|func|type|var|const)\s/.test(snippet);
102
+
103
+ // let newLanguage;
104
+ // let languageType;
105
+ // let languageLabel;
106
+
107
+ // if (docIsPython) {
108
+ // newLanguage = python();
109
+ // languageLabel = "Python";
110
+ // languageType = pythonLanguage;
111
+ // } else if (docIsJava) {
112
+ // newLanguage = java();
113
+ // languageLabel = "Java";
114
+ // languageType = javaLanguage;
115
+ // } else if (docIsGo) {
116
+ // newLanguage = go();
117
+ // languageLabel = "Go";
118
+ // languageType = goLanguage;
119
+ // } else if (docIsCpp) {
120
+ // newLanguage = cpp();
121
+ // languageLabel = "C++";
122
+ // languageType = cppLanguage;
123
+ // } else {
124
+ // newLanguage = javascript(); // Default to JavaScript
125
+ // languageLabel = "JavaScript";
126
+ // languageType = javascriptLanguage;
127
+ // }
128
+
129
+ // const stateLanguage = tr.startState.facet(language);
130
+ // if (languageType == stateLanguage) return null;
131
+
132
+ // setSelectedLanguage(languageLabel);
133
+
134
+ // return {
135
+ // effects: languageConf.reconfigure(newLanguage),
136
+ // };
137
+ // });
138
138
139
139
const [ messageApi , contextHolder ] = message . useMessage ( ) ;
140
140
@@ -290,8 +290,9 @@ const CollaborativeEditor = forwardRef(
290
290
doc : ytext . toString ( ) ,
291
291
extensions : [
292
292
basicSetup ,
293
- languageConf . of ( javascript ( ) ) ,
294
- autoLanguage ,
293
+ languageConf . of ( python ( ) ) ,
294
+ // languageConf.of(javascript()),
295
+ // autoLanguage,
295
296
yCollab ( ytext , provider . awareness , { undoManager } ) ,
296
297
] ,
297
298
} ) ;
@@ -326,9 +327,9 @@ const CollaborativeEditor = forwardRef(
326
327
ref = { editorRef }
327
328
style = { { height : "400px" , border : "1px solid #ddd" } }
328
329
/>
329
- < div className = "language-detected" >
330
+ { /* <div className="language-detected">
330
331
<strong>Current Language Detected: </strong> {selectedLanguage}
331
- </ div >
332
+ </div> */ }
332
333
</ >
333
334
) ;
334
335
}
0 commit comments