You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

85 lines
2.5 KiB

  1. <!doctype html>
  2. <title>CodeMirror: MUMPS mode</title>
  3. <meta charset="utf-8"/>
  4. <link rel=stylesheet href="../../doc/docs.css">
  5. <link rel="stylesheet" href="../../lib/codemirror.css">
  6. <script src="../../lib/codemirror.js"></script>
  7. <script src="mumps.js"></script>
  8. <style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
  9. <div id=nav>
  10. <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
  11. <ul>
  12. <li><a href="../../index.html">Home</a>
  13. <li><a href="../../doc/manual.html">Manual</a>
  14. <li><a href="https://github.com/codemirror/codemirror">Code</a>
  15. </ul>
  16. <ul>
  17. <li><a href="../index.html">Language modes</a>
  18. <li><a class=active href="#">MUMPS</a>
  19. </ul>
  20. </div>
  21. <article>
  22. <h2>MUMPS mode</h2>
  23. <div><textarea id="code" name="code">
  24. ; Lloyd Milligan
  25. ; 03-30-2015
  26. ;
  27. ; MUMPS support for Code Mirror - Excerpts below from routine ^XUS
  28. ;
  29. CHECKAV(X1) ;Check A/V code return DUZ or Zero. (Called from XUSRB)
  30. N %,%1,X,Y,IEN,DA,DIK
  31. S IEN=0
  32. ;Start CCOW
  33. I $E(X1,1,7)="~~TOK~~" D Q:IEN>0 IEN
  34. . I $E(X1,8,9)="~1" S IEN=$$CHKASH^XUSRB4($E(X1,8,255))
  35. . I $E(X1,8,9)="~2" S IEN=$$CHKCCOW^XUSRB4($E(X1,8,255))
  36. . Q
  37. ;End CCOW
  38. S X1=$$UP(X1) S:X1[":" XUTT=1,X1=$TR(X1,":")
  39. S X=$P(X1,";") Q:X="^" -1 S:XUF %1="Access: "_X
  40. Q:X'?1.20ANP 0
  41. S X=$$EN^XUSHSH(X) I '$D(^VA(200,"A",X)) D LBAV Q 0
  42. S %1="",IEN=$O(^VA(200,"A",X,0)),XUF(.3)=IEN D USER(IEN)
  43. S X=$P(X1,";",2) S:XUF %1="Verify: "_X S X=$$EN^XUSHSH(X)
  44. I $P(XUSER(1),"^",2)'=X D LBAV Q 0
  45. I $G(XUFAC(1)) S DIK="^XUSEC(4,",DA=XUFAC(1) D ^DIK
  46. Q IEN
  47. ;
  48. ; Spell out commands
  49. ;
  50. SET2() ;EF. Return error code (also called from XUSRB)
  51. NEW %,X
  52. SET XUNOW=$$HTFM^XLFDT($H),DT=$P(XUNOW,".")
  53. KILL DUZ,XUSER
  54. SET (DUZ,DUZ(2))=0,(DUZ(0),DUZ("AG"),XUSER(0),XUSER(1),XUTT,%UCI)=""
  55. SET %=$$INHIBIT^XUSRB() IF %>0 QUIT %
  56. SET X=$G(^%ZIS(1,XUDEV,"XUS")),XU1=$G(^(1))
  57. IF $L(X) FOR I=1:1:15 IF $L($P(X,U,I)) SET $P(XOPT,U,I)=$P(X,U,I)
  58. SET DTIME=600
  59. IF '$P(XOPT,U,11),$D(^%ZIS(1,XUDEV,90)),^(90)>2800000,^(90)'>DT QUIT 8
  60. QUIT 0
  61. ;
  62. ; Spell out commands and functions
  63. ;
  64. IF $PIECE(XUSER(0),U,11),$PIECE(XUSER(0),U,11)'>DT QUIT 11 ;Terminated
  65. IF $DATA(DUZ("ASH")) QUIT 0 ;If auto handle, Allow to sign-on p434
  66. IF $PIECE(XUSER(0),U,7) QUIT 5 ;Disuser flag set
  67. IF '$LENGTH($PIECE(XUSER(1),U,2)) QUIT 21 ;p419, p434
  68. Q 0
  69. ;
  70. </textarea></div>
  71. <script>
  72. var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
  73. mode: "mumps",
  74. lineNumbers: true,
  75. lineWrapping: true
  76. });
  77. </script>
  78. </article>