@@ -181,63 +181,70 @@ function newLine(){
181
181
182
182
// Main event listener for keyboard shortcuts
183
183
document . addEventListener ( 'keydown' , function ( event ) {
184
- if ( ( event . ctrlKey || event . metaKey ) && ! event . altKey ) {
184
+ var editor = document . getElementById ( 'editor' ) ;
185
+ // Handling tab key for inserting tabs in the editor
186
+ if ( event . key === 'Tab' ) {
187
+ event . preventDefault ( ) ; // Prevent the tab key's default behavior
188
+ var start = editor . selectionStart ;
189
+ var end = editor . selectionEnd ;
190
+ editor . value = editor . value . substring ( 0 , start ) + '\t' + editor . value . substring ( end ) ;
191
+ editor . selectionStart = editor . selectionEnd = start + 1 ; // Move cursor
192
+ }
193
+ // Handling shortcuts with Ctrl or Cmd key
194
+ if ( event . ctrlKey || event . metaKey ) {
185
195
switch ( event . key . toLowerCase ( ) ) {
186
196
case 'b' :
187
- event . preventDefault ( ) ;
188
- toggleBold ( ) ;
197
+ event . preventDefault ( ) ; // Prevent default event (usually open bookmarks in browser)
198
+ toggleBold ( ) ; // Call function to toggle bold
189
199
break ;
190
200
case 'i' :
191
- event . preventDefault ( ) ;
192
- toggleItalics ( ) ;
201
+ event . preventDefault ( ) ; // Prevent default event (usually open browser settings)
202
+ toggleItalics ( ) ; // Call function to toggle italics
193
203
break ;
194
204
case 's' :
195
- event . preventDefault ( ) ;
196
- toggleStrikethrough ( ) ;
205
+ event . preventDefault ( ) ; // Prevent default event (usually save the webpage)
206
+ toggleStrikethrough ( ) ; // Call function to toggle strikethrough
197
207
break ;
198
208
case 'e' :
209
+ event . preventDefault ( ) ; // Prevent default event
210
+ toggleEmoji ( ) ; // Call function to toggle emoji
211
+ break ;
212
+ case '=' : // Handling Ctrl + '=' for increasing font size
199
213
event . preventDefault ( ) ;
200
- toggleEmoji ( ) ;
214
+ changeFontSize ( 2 ) ; // Increase font size
201
215
break ;
202
- case 'enter' :
216
+ case '-' : // Handling Ctrl + '-' for decreasing font size
203
217
event . preventDefault ( ) ;
204
- toggleViewMode ( ) ;
218
+ changeFontSize ( - 2 ) ; // Decrease font size
205
219
break ;
206
- case 'l' :
220
+ case 'enter' : // Ctrl+Enter for toggling view mode
207
221
event . preventDefault ( ) ;
208
- newLine ( ) ;
209
- break ;
210
- case '=' : // Ctrl + '=' is the actual result when pressing Ctrl + '+'
211
- if ( event . key === '=' || event . key === '+' ) {
212
- event . preventDefault ( ) ;
213
- changeFontSize ( 2 ) ;
214
- }
222
+ toggleViewMode ( ) ;
215
223
break ;
216
- case '-' :
224
+ case 'l' : // Ctrl+L for a new line (custom feature not typically found in editors)
217
225
event . preventDefault ( ) ;
218
- changeFontSize ( - 2 ) ;
226
+ newLine ( ) ;
219
227
break ;
220
228
}
221
- } else if ( ! event . ctrlKey && ! event . metaKey && ! event . altKey ) {
229
+ } else {
230
+ // Handling non-Ctrl shortcuts such as '[' or '(', for surrounding text or cursor with brackets or parentheses
222
231
switch ( event . key ) {
223
232
case '[' :
224
- event . preventDefault ( ) ;
225
- insertSquareBrackets ( ) ;
233
+ event . preventDefault ( ) ; // Prevent default event
234
+ insertSquareBrackets ( ) ; // Call function to insert square brackets
226
235
break ;
227
236
case '(' :
228
- event . preventDefault ( ) ;
229
- insertParentheses ( ) ;
237
+ event . preventDefault ( ) ; // Prevent default event
238
+ insertParentheses ( ) ; // Call function to insert parentheses
230
239
break ;
231
240
}
232
241
}
233
- // Update preview and autosave after applying the formatting
242
+ // Update preview and autosave after applying shortcut actions
234
243
updatePreview ( ) ;
235
244
autosave ( ) ;
236
- } ) ;
237
-
238
- window . addEventListener ( 'keydown' , function ( event ) {
245
+ // Handling of quick word count and reading time display with Ctrl+Shift+C
239
246
if ( event . ctrlKey && event . shiftKey && event . code === 'KeyC' ) {
240
247
showWordCountAndReadingTime ( ) ;
241
- event . preventDefault ( ) ; // Prevents any default action associated with the Control +Shift+C shortcut
248
+ event . preventDefault ( ) ; // To prevent default action of Ctrl +Shift+C if any
242
249
}
243
250
} ) ;
0 commit comments