Advertisement
Mangus875

Syntax Highlighter.js

Nov 22nd, 2023 (edited)
1,014
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function recolor() {
  2.     let bf = document.querySelectorAll(".brainfuck");
  3.     bf.forEach((code) => {
  4.         var start = code.selectionStart;
  5.     var end = code.selectionEnd;
  6.         // console.log(start);
  7.        
  8.         let curCode = code.innerText;
  9.         let newCode = "";
  10.        
  11.         let lastCode = '';
  12.         for (let i = 0; i < curCode.length; i++) {
  13.             let c = curCode.charAt(i);
  14.             let codeType = 'comment';
  15.            
  16.             switch(c) {
  17.                 case '>':
  18.                 case '<':
  19.                     codeType = 'shift';
  20.                     break;
  21.                    
  22.                 case '.':
  23.                 case ',':
  24.                     codeType = 'io';
  25.                     break;
  26.                    
  27.                 case '[':
  28.                 case ']':
  29.                     codeType = 'loop';
  30.                     break;
  31.                    
  32.                 case '+':
  33.                 case '-':
  34.                     codeType = 'edit';
  35.                     break;
  36.             }
  37.            
  38.             if (codeType != lastCode) {
  39.                 if (i != 0) {
  40.                     newCode += '</span>';
  41.                 }
  42.                 newCode += `<span class='${codeType}'>`;
  43.             }
  44.             newCode += c;
  45.             lastCode = codeType;
  46.         }
  47.         newCode += "</span>";
  48.         code.innerHTML = newCode;
  49.     });
  50. }
  51.  
  52. window.onload = () => {
  53.     recolor();
  54.     setInterval(()=> {
  55.         recolor();
  56.     }, 50);
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement