diff --git a/autotests/html/test.logcat.html b/autotests/html/test.logcat.html index d25f1ea..21c307c 100644 --- a/autotests/html/test.logcat.html +++ b/autotests/html/test.logcat.html @@ -1,113 +1,113 @@ test.logcat
 --------- beginning of system
 02-29 16:51:18.810   188   188 V test    : When he woke up, the dinosaur was still there
 02-29 16:51:18.811   188   188 V test    : When he woke up, the dinosaur was still there
 02-29 16:51:18.821   188   188 I test    : When he woke up, the dinosaur was still there
 02-29 16:51:18.849   188   191 I test    : When he woke up, the dinosaur was still there
 02-29 16:51:18.850   188   191 D test    : When he woke up, the dinosaur was still there
 02-29 16:51:18.850   188   191 D test    : When he woke up, the dinosaur was still there
 02-29 16:51:18.854   188   193 W test    : When he woke up, the dinosaur was still there
 02-29 16:51:18.854   188   193 W test    : When he woke up, the dinosaur was still there
 02-29 16:51:18.854   188   193 E test    : When he woke up, the dinosaur was still there
 02-29 16:51:18.854   188   193 E test    : When he woke up, the dinosaur was still there
 02-29 16:51:18.857   188   193 A test    : When he woke up, the dinosaur was still there
 02-29 16:51:18.857   188   193 A test    : When he woke up, the dinosaur was still there
-02-29 16:51:18.857   188   193 S test    : When he woke up, the dinosaur was still there
-02-29 16:51:29.154   580   580 S test    : When he woke up, the dinosaur was still there
+02-29 16:51:18.857   188   193 S test    : When he woke up, the dinosaur was still there
+02-29 16:51:29.154   580   580 S test    : When he woke up, the dinosaur was still there
 02-29 16:51:30.423   580   580 F test    : When he woke up, the dinosaur was still there
 02-29 16:51:30.468   580   580 F test    : When he woke up, the dinosaur was still there
 
 --------- beginning of brief format
 V/test    (  119): When he woke up, the dinosaur was still there
 V/test    (  119): When he woke up, the dinosaur was still there
 --------- beginning of year format
 2018-02-29 16:51:40.899  1362  1365 I test    : When he woke up, the dinosaur was still there
 2018-02-29 16:51:40.899  1362  1365 I test    : When he woke up, the dinosaur was still there
 --------- beginning of color format
 03-20 16:51:40.898  1664  1770 F test    : When he woke up, the dinosaur was still there
 03-20 16:51:40.899  1664  1779 D test    : When he woke up, the dinosaur was still there
 03-20 16:51:40.899  1664  1755 D test    : When he woke up, the dinosaur was still there
 --------- beginning of epoch format
          1521575578.229   188   191 W test    : When he woke up, the dinosaur was still there
          1521575578.246   188   191 W test    : When he woke up, the dinosaur was still there
 --------- beginning of monotonic format
     13.418   188   193 E test    : When he woke up, the dinosaur was still there
     13.419   188   193 E test    : When he woke up, the dinosaur was still there
 --------- beginning of process format
 A(  148) When he woke up, the dinosaur was still there
 A(  148) When he woke up, the dinosaur was still there
 --------- beginning of tag format
-S/test    : When he woke up, the dinosaur was still there
-S/test    : When he woke up, the dinosaur was still there
+S/test    : When he woke up, the dinosaur was still there
+S/test    : When he woke up, the dinosaur was still there
 --------- beginning of thread format
 F( 1664: 1664) When he woke up, the dinosaur was still there
 F( 1664: 2268) When he woke up, the dinosaur was still there
 E( 1664: 2269) When he woke up, the dinosaur was still there
 E( 1664: 2270) When he woke up, the dinosaur was still there
 --------- beginning of time format
 02-29 19:33:50.940 V/test    (  188): When he woke up, the dinosaur was still there
 02-29 19:33:50.940 V/test    (  188): When he woke up, the dinosaur was still there
 --------- beginning of uid format
 02-29 19:33:50.950  root   188   193 I/test    : When he woke up, the dinosaur was still there
 02-29 19:33:51.049  1000   229   229 I/test    : When he woke up, the dinosaur was still there
 --------- beginning of usec format
 02-29 19:33:51.850400   229   229 D/test    : When he woke up, the dinosaur was still there
 02-29 19:33:51.854069   229   242 D/test    : When he woke up, the dinosaur was still there
 --------- beginning of utc/zone format
 02-29 19:33:51.050 -0300   580   688 W/test    : When he woke up, the dinosaur was still there
 02-29 19:33:51.067 +0000   580   688 W/test    : When he woke up, the dinosaur was still there
 
 --------- beginning of long format
 
 [ 02-29 16:51:18.810   188:  188 V/vold     ]
 When he woke up, the dinosaur was still there
 
 [ 02-29 16:51:18.811   188:  188 I/vold     ]
 When he woke up, the dinosaur was still there
 
 [ 02-29 16:51:18.821   188:  188 D/Vold     ]
 When he woke up,
 	the dinosaur was still there
 
 [ 02-29 16:51:18.849   188:  191 W/vold     ]
 When
 he woke up,
 the dinosaur was still there
 
 [ 02-29 16:51:18.850   188:  191 E/MessageQueue ]
 When he woke up,
 	
 	the dinosaur was still there
 
 [ 02-29 16:51:18.854   188:  193 A/vold     ]
 
 When he woke up, the dinosaur was still there
 
 
-[ 02-29 16:51:18.859   188:  193 S/vold     ]
-When he woke up, the dinosaur was still there
+[ 02-29 16:51:18.859   188:  193 S/vold     ]
+When he woke up, the dinosaur was still there
 
 [ 02-29 16:51:18.902   188:  199 F/libc     ]
 When he woke up, the dinosaur was still there
 
 --------- error (different formats)
 
 02-30 20:00:00.123   188   193 E error line : When he woke up, the dinosaur was still there
 02-30 20:00:01.112   188   193 E error line : When he woke up, the dinosaur was still there
 
 13.418   188   193 E test    : When he woke up, the dinosaur was still there
 E(  148) When he woke up, the dinosaur was still there
 E/test    : When he woke up, the dinosaur was still there
 E( 1664: 2269) When he woke up, the dinosaur was still there
 02-30 20:00:03.240 E/test    (  188): When he woke up, the dinosaur was still there
 
 [ 02-30 20:00:04.001   188:  195 E/Error ]
 When he woke up,
     the dinosaur
         was still there
 
diff --git a/autotests/html/test.markdown.html b/autotests/html/test.markdown.html index 51fc32f..bc6551b 100644 --- a/autotests/html/test.markdown.html +++ b/autotests/html/test.markdown.html @@ -1,589 +1,589 @@ test.markdown
 ---
 Title:    A Sample Markdown Document
 Author:   Fletcher T. Penney
 Date:     February 9, 2011
 Comment:  This is a comment intended to demonstrate 
           metadata that spans multiple lines.
 ---
 
 # H1
 
 ## H2
 
 ### H3
 
 Multi-line paragraph bla bla bla
 bla bla bla.
 
 Intentional line break  
 via two spaces at line.
 
 Formats: _italic_, **bold**, `monospace`, ~~strikeout~~
 
 Bullet list:
 
 * item1
 * item2
 
 Numbered list:
 
 1. item 1
 2. item 2
 
 Task list:
 
 - [x] Finish my changes
 - [ ] Push my commits
 - [ ] Open a pull request
 
 A link as normal text: http://example.com
 
 [link](http://kde.org)
 
 Auto-link: <http://kate-editor.org>
 Mail: <mailto:mark@kde.org>
 
 This is [an example](http://example.com/ "Title") inline link.
 
 See my [About](/about/) page for details.
 
 This is [an example] [id] reference-style link.
 
 [id]: http://example.com/  "Optional Title Here"
 [foo]: http://example.com/ 'Optional Title Here'
 [bar]: http://example.com/ (Optional Title Here)
 [id2]: <http://example.com/>  "Optional Title Here"
 
 ![Alt text](/path/to/img.jpg)
 
 ![Alt text](/path/to/img.jpg "Optional title")
 
 [![Alt text](https://url/to/img.svg)](https://link.com/example/)
 
     code 1
     code 2
 
 normal text
 
 > block quote _italic_
 > more block quote
 
 normal text
 
 Title: some text
 
 normal text
 
 # Lists
 
 1. item
    * This is a list item
      with multiple lines.
      ```
      code
      ```
 
      > This is a
      blockquote
 
      This is a new paragraph, which
      is part of the item in the
      previous list.
 
          indented code block
 
        Other paragraph.
 
      * subitem
        * subitem
          with multiple
             lines.
 
          New paragraph of
          the previous subitem.
 
              code block
 
           -----------------------
 
             Other paragraph of
             the subitem.
 
           30. numlist item
           31. numlist item
 
                  New paragraph of
                  the previous item.
 
                  > Blockquote
 
                   code block
   
               Other paragraph.
 
 # Inline HTML
 
 &copy;
 <strong>bold</strong>
 <code>code</code>
 
 <table>
     <tr>
         <th>a</th>
         <th>b</th>
     </tr>
     <tr>
         <th><ul>
             <li>c</li>
             <li>d</li>
         </ul></th>
         <th>e</th>
     </tr>
 </table>
 
 normal text *italic*
 
 # Code
 
 `simple code`
 
 ``simple ` code``
 
 ```simple `` ` code ```
 
 ````simple`code````
 
 normal text
     normal text
     normal text
         normal text
 
     code blocks are only allowed
     after an empty line.
 
 * list
     list
     
     normal text
     
 1. num-list
     num-list
 
     normal text
 
 > quote
     quote
     
     code block
 
 normal
 <!-- comment -->
     <!-- code, not comment -->
     code
 
 normal
 
   <!-- coment -->
     code
 
 # Fenced code blocks (bug 356974)
 
 ## Bash
 
 ```bash
 #!/usr/bin/env bash
 
 for f in *; do
     echo "$f"
 done
 ```
 
 ## C++
 
 ```cpp
 #include <QtCore/QObject>
 
 class Q : public QObject {
 Q_OBJECT
 public:
     Q();
 }
 
 Q::Q() :QObject(NULL) {
 }
 ```
 
 ## C
 
 ```c
 #include <stdio.h>
 #include "stdint.h"
 #define SOME_VAR 1
 
 static uint64_t intWithSuffix = 42ull + ~1233L;
 static int octNum = 07232;
 ```
 
 ## C#  ##
 
 ```csharp
 var arr = new[] { 0, 1, 2, 3, 4 };
 var anon = new { Country = "Germany", Inhabitants = 80000000 };
 ```
 
 ## CMake
 
 ```cmake
 cmake_minimum_required(VERSION 3.10 FATAL_ERROR)
 
 project (hello_world)
 
 set(QT_MIN_VERSION "5.6.0")
 ```
 
 ## CSS
 
 ```css
 h1.main::hover {
     font-size: 100;
     color: green;
 }
 ```
 
 ## Email
 
 ```email
 From: Konqi Dragon <konqi@kde.org>
 To: All <all@kde.og>
 Subject: highlights
 ```
 
 ## Go
 
 ```go
 package main
 
 import "fmt"
 
 func main() {
   fmt.Println("Hola, mundo.")
 }
 ```
 
 ## Haskell
 
 ```haskell
 module Main (main) where
 
 main :: IO ()
 main = putStrLn "Hello, World!"
 ```
 
 ## HTML
 
 ```html
 <html>
   <body>
     <p class="main">Hello world!</p>
   </body>
 </html>
 ```
 
 ## Java
 
 ```java
 package fibsandlies;
 import java.util.HashMap;
 
 /**
  * This is an example of a Javadoc comment; Javadoc can compile documentation
  * from this text. Javadoc comments must immediately precede the class, method, or field being documented.
  */
 public class FibCalculator extends Fibonacci implements Calculator {
 
     private static Map<Integer, Integer> memoized = new HashMap<Integer, Integer>();
     public static void main(String[] args) {
         memoized.put(1, 1);
         memoized.put(2, 1);
         System.out.println(fibonacci(12));
     }
 }
 ```
 
 ## JavaScript
 
 ```js
 function factorial(n) {
     if (n === 0) {
         return 1;  // 0! = 1
     }
     return n * factorial(n - 1);
 }
 ```
 
 ## JavaScript React (JSX)
 
 ```jsx
 <hello />
 function Story(props) {
   const SpecificStory = components[props.storyType];
   return <SpecificStory story={ props.story } attr2="&ref;" attr3="Hello\n" />;
 }
 ```
 
 ## JSON
 
 ```json
 [{
     "hello": "world",
     "count": 1,
     "bool": true
 }]
 ```
 
 ## Matlab
 
 ```matlab
 % Numbers _____________________________________________
 5, 5.5, .1, 0.1, 0.4e5, 1.2e-5, 5i, 5.3i, 6j, .345+3i
 5', 5.5', .1', 0.1', 0.4e5', 1.2e-5', 5i', 5.3i', 6j', .345+3i'
 ```
 
 ## Markdown
 
 ```markdown
-**bold** `code`
-> quote
+**bold** `code`
+> quote
 
 ```
 
 ## Mustache/Handlebars
 
 ```handlebars
 {{#movie}}
     <div>
         <h1>{{title}}</h1>
         <img src="{{poster}}" alt="{{title}}"/>
     </div>
     <div>
         Rating - {{ratings.critics_rating}}
     </div>
 {{/movie}}
 ```
 
 ## Perl
 
 ```perl
 my $var = shift;
 
 $var =~ s/bla/foo/igs;
 $var =~ s!bla!foo!igs;
 $var =~ s#bla#foo#igs;
 ```
 
 ## PHP
 
 ```php
 namespace Application\Controller;
 
 use Zend\Mvc\Controller\AbstractActionController;
 
 class IndexController extends AbstractActionController
 {
 }
 ```
 
 ## Python
 
 ```python
 def addXToY(x, y):
     total = x + y
     print total
 ```
 
 ## QML
 
 ```qml
 Text {
     id: hello
     width: 100
     text: "Hello world!"
 }
 ```
 
 ## R
 
 ```r
 # Declare function “f” with parameters “x”, “y“
 # that returns a linear combination of x and y.
 f <- function(x, y) {
   z <- 3 * x + 4 * y
   return(z)
 }
 ```
 
 ## Ruby
 
 ```ruby
 require 'Config'
   def CGI::escape(string)
     string.gsub(/([^ a-zA-Z0-9_.-]+)/n) do
       '%' + $1.unpack('H2' * $1.size).join('%').upcase
     end.tr(' ', '+')
   end
 ```
 
 ## Rust
 
 ```rust
 fn main() {
     println!("Hello world!");
 }
 ```
 
 ## MySQL
 
 ```mysql
 -- comment
 CREATE TABLE stuff COLUMNS(col1 INT, col2 Varchar);
 SELECT * FROM stuff WHERE id = 'string';
 select * from stuff where id < 0.42;
 Select col1, col2 From stuff Where stuff.col1 IS NOT NuLL;
 ```
 
 ## TypeScript
 
 ```ts
 class Student {
     fullName: string;
     constructor(public firstName: string, public middleInitial: string, public lastName: string) {
         this.fullName = firstName + " " + middleInitial + " " + lastName;
     }
 }
 ```
 
 ## XML
 
 ```xml
 <tag attribute="3">
   <nested/>
 </tag>
 ```
 
 ## reStructuredText
 
 ```rst
 Section Header
 ==============
 
 .. image:: /path/to/image.jpg
 
 - A bullet list item
 ```
 
 ## Doxygen
 
 ```doxygen
 a normal member taking two arguments and returning an integer value.
 @param a an integer argument.
 @param s a constant character pointer.
 @see Javadoc_Test()
 @see publicVar()
 @return The test results
 ```
 
 ## No language specified
 
 ```
 No language is specified, but it should be still rendered as code block.
 ```
 
 # Fenced code blocks with more than 3 backticks or tildes
 
 ~~~
 Fenced code block with 3 tildes.
 ~~~
 
 `````````
 Some implementations of Markdown/MultiMarkdown support more than 3 backticks or tildes.
 ```
 The block ends with the same amount of backticks.
 `````````
 
 ~~~~~~~~~~~~
 Fenced code block with more tildes.
 ~~~~~~~~~~~~
 
 ## With languages
 
 ```````html
 <html>
   <body>
     <p class="main">Hello world!</p>
   </body>
 </html>
 ``` <!-- <= doesn't end here -->
 ```````
 
 ~~~bash
 for f in *; do
     echo "$f"
 done
 ~~~
 
 ~~~~~~~~~python
 def addXToY(x, y):
     total = x + y
     print total
 ~~~ # <= doesn't end here
 ~~~~~~~~~
 
 # Italic and bold text
 
 **b** *i* __b__ _i_
 ***ib*** ___ib___
 **_ib_** __*ib*__
 
 * _italic_ **bold** ***ib*** ~~strikeout~~
 
 > _italic_ **bold** ***ib*** ~~strikeout~~
 
 ## Bold
 **bold*___text** normal
 __bold_***text__ normal
 
 ## Italic
 *italic _ text* normal
 _italic * text_ normal
 
 ## Italic-Bold
 ***italic-bold ** italic-bold*** normal
 ***bold-italic text **bold-italic text*** normal
 ***bold*italic*** normal
 **_bold-italic text_** normal
 
 <!-- A non-space character is required after or before * or _ -->
 _ normal text_ * normal text *
 *italic text*normal text*
 *italic text *italic text*
 **bold text**normal text**
 **bold text **bold text**
 
 <!-- A delimiter is required after or before _ -->
 aaa**bold text**aaaaa
 aaa__normal text__aaaaa
 пристаням_стремятся_
 
 <!-- Escapes within bold or italic text -->
 \*normal text*
 _normal text\_
 **italic text\**
 ***only bold\***
 **bold\** bold**
 
diff --git a/autotests/html/test.ts.html b/autotests/html/test.ts.html index d39567c..3744d98 100644 --- a/autotests/html/test.ts.html +++ b/autotests/html/test.ts.html @@ -1,196 +1,196 @@ test.ts
 /// <reference types="node" />
 
 // TypeScript Test
 
 class Student {
     fullName: string;
     constructor(public firstName: string, public middleInitial: string, public lastName: string) {
         this.fullName = firstName + " " + middleInitial + " " + lastName;
     }
 }
 
 interface Person {
     firstName: string;
     lastName: string;
 }
 
 function greeter(person : Person) {
     return "Hello, " + person.firstName + " " + person.lastName;
 }
 
 let user = new Student("Jane", "M.", "User");
 
 document.body.innerHTML = greeter(user);
 JSON.stringify()
 console.log("Hello world");
 
 import http = require("http");
 import path = require("path");
 import URL = url.URL;
 import { Readable, Writable } from "stream";
 import { isBuffer, isString, isObject } from "util";
 
 const port = 8__88___8;
 const baseUrl = new URL(`http://localhost:${port}/`);
 const rootDir = path.dirname(__dirname);
 
 const defaultBrowser = os.platform() === "win32" ? "edge" : "chrome";
 let browser: "edge" | "chrome" | "none" = defaultBrowser;
 let grep: string | undefined;
 
 interface FileBasedTestConfiguration {
     [setting: string]: string;
 }
 
 function swapCase(s: string): string {
     return s.replace(/\w/g, (ch) => {
         const up = ch.toUpperCase();
         return ch === up ? ch.toLowerCase() : up;
     });
 }
 
 for (var i in pieces) {
     switch (true) {
         case /^\"?Accession\"?/.test(pieces[i]):
             numeration[0] = i;
             break;
     }
 }
 
 const enum ResponseCode {
     Success = 200,
     BadRequest = 400
 }
 
 // Substitutions
 export function isInOpenInterval(start: number, end: number) {
     return tersible(a => a > start && a < end, () => `(${start}...${end})`)
 }
 const bar = `${x} ${y}`; 
 
 // readonly
 function f1(mt: [number, number], rt: readonly [number, number]) {
 }
 
 function f2(ma: string[], ra: readonly string[], mt: [string, string], rt: readonly [string, string]) {
 }
 
 type ReadWrite<T> = { -readonly [P in keyof T] : T[P] };
 
 // const assertion
 let obj = { x: 10, y: [20, 30], z: { a: { b: 42 } } } as const;
 let r2 = { x: 20, y: 10 } as const;
 let r2 = {...p} as const;
 let p1 = { x: 10, y: 20 as const };
 let p2 = { 10 as const, 'foo' as const };
 
 // Definite assignment operator
 class Cl {
-    one?: string;
+    one?: string;
     two!: string;
 }
 let x! = 1; 
 
 // Function with multiple arguments
 const children = [].map<Set<Map<number, string>>>(element => {
     if (!this.identityProvider) {
         return element;
     }
     return element;
 }); 
 
 // Numerics
 var a = 0xA;
 var b = 0b1;
 var c = 0o7;
 var d = 1.1E+3;
 var e = 1.E+3;
 var f = .1E+3;
 var g = 1E+3;
 var h = 1.1;
 var i = 1.;
 var j = .1;
 var k =  1;
 var l = 1__.e+3_22 | .2____e2 | 0o1_23 | 11__. ;
 
 // Bigint
 const binBig = 0b101n;
 const octBig = 0o567n;
 const hexBig = 0xC0Bn;
 const decBig = 123n;
 
 // Types
 let a: null = null;
 let b: number = 123;
 let c: number = 123.456;
 let d: string = `Geeks`;
 let e: undefined = undefined;
 let f: boolean = true;
 let g: number = 0b111001; // Binary
 let h: number = 0o436; // Octal
 let i: number = 0xadf0d; // Hexa-Decimal 
 
 const query = query<[number], number>(`
         SELECT *
         FROM statistics
         WHERE unit_id = $1`)
 
 function runQuery() {
     const query = createQuery<[number[]], Table<Columns>>(`
         some SQL here
     `)
     return database.execute(query)
 }
 
 aa: <sdf/> string ?<ssd/> string 
  string // Don't highlight
 aa: string assa |
    string 
    string ;
    string
 
 aa: { string
     string } // Don't highlight
     
 aa: [ string
       string ]
 aa: ( string 
       string ) // Don't highlight
 aa: string <string>
 interface a {
     aa: /* comment
         */ string,
     bb: /* comment */
         number,
     cc: // comment
         void,
     dd:
         any,
 }
 
 null, <{[key]: () => any}> null
 null, <{[key]: () =>{a: number}}> null
 
 // Correctly highlighting regular expressions
 dt = ((dt[0] * 1e9 + dt[1]) / 1e6).toFixed(3).replace(/\.?0+$/, '') + 'ms';
 (a[0] / 2) / (2)
 
 // Type guards
 function isNumber(x: any): x is number {
     return typeof x === "number";
 }
 
 // Conditional expressions (highlight keywords before ":")
 class C {
     w = () =>
         this.a() ? true : this.b() ? false : true;
     z = () =>
         this.b() ? hello : k; 
 }
 
diff --git a/autotests/reference/test.markdown.ref b/autotests/reference/test.markdown.ref index 10c0843..3fef013 100644 --- a/autotests/reference/test.markdown.ref +++ b/autotests/reference/test.markdown.ref @@ -1,582 +1,582 @@ ---
Title: A Sample Markdown Document
Author: Fletcher T. Penney
Date: February 9, 2011
Comment: This is a comment intended to demonstrate
metadata that spans multiple lines.
---

# H1


## H2


### H3


Multi-line paragraph bla bla bla
bla bla bla.

Intentional line break
via two spaces at line.

Formats: _italic_, **bold**, `monospace`, ~~strikeout~~

Bullet list:

* item1
* item2

Numbered list:

1. item 1
2. item 2

Task list:

- [x] Finish my changes
- [ ] Push my commits
- [ ] Open a pull request

A link as normal text: http://example.com

[link](http://kde.org)

Auto-link: <http://kate-editor.org>
Mail: mark@kde.org>

This is [an example](http://example.com/ "Title") inline link.

See my [About](/about/) page for details.

This is [an example] [id] reference-style link.

[id]: http://example.com/ "Optional Title Here"
[foo]: http://example.com/ 'Optional Title Here'
[bar]: http://example.com/ (Optional Title Here)
[id2]: <http://example.com/> "Optional Title Here"

![Alt text](/path/to/img.jpg)

![Alt text](/path/to/img.jpg "Optional title")

[![Alt text](https://url/to/img.svg)](https://link.com/example/)

code 1
code 2

normal text

>
block quote _italic_
>
more block quote

normal text

Title: some text

normal text

# Lists


1. item
* This is a list item
with multiple lines.
```
code
```

>
This is a
blockquote

This is a new paragraph, which
is part of the item in the
previous list.

indented code block

Other paragraph.

* subitem
* subitem
with multiple
lines.

New paragraph of
the previous subitem.

code block

-----------------------

Other paragraph of
the subitem.

30. numlist item
31. numlist item

New paragraph of
the previous item.

>
Blockquote

code block

Other paragraph.

# Inline HTML


©
bold
code










a b

  • c

  • d

e


normal text *italic*

# Code


`simple code`

``simple ` code``

```simple `` ` code ```

````simple`code````

normal text
normal text
normal text
normal text

code blocks are only allowed
after an empty line.

* list
list

normal text

1. num-list
num-list

normal text

>
quote
quote

code block

normal


code

normal


code

# Fenced code blocks (bug 356974)


## Bash


```bash
#!/usr/bin/env bash

for f *; do
echo "$f"
done
```

## C++


```cpp
#include

class Q : public QObject {
Q_OBJECT
public:
Q();
}

Q::Q() :QObject(NULL) {
}
```

## C


```c
#include
#include "stdint.h"
#define SOME_VAR 1

static uint64_t intWithSuffix = 42ull + ~1233L;
static int octNum = 07232;
```

## C# ##


```csharp
var arr = new[] { 0, 1, 2, 3, 4 };
var anon = new { Country = "Germany", Inhabitants = 80000000 };
```

## CMake


```cmake
cmake_minimum_required(VERSION 3.10 FATAL_ERROR)

project (hello_world)

set(QT_MIN_VERSION "5.6.0")
```

## CSS


```css
h1.main::hover {
font-size: 100;
color: green;
}
```

## Email


```email
From: Konqi Dragon

To: All

Subject: highlights
```

## Go


```go
package main

import "fmt"

func main() {
fmt.Println("Hola, mundo.")
}
```

## Haskell


```haskell
module Main (main) where

main :: IO ()
main = putStrLn "Hello, World!"
```

## HTML


```html


class="main">Hello world!




```

## Java


```java
package fibsandlies;
import java.util.HashMap;

/**
* This is an example of a Javadoc comment; Javadoc can compile documentation
* from this text. Javadoc comments must immediately precede the class, method, or field being documented.
*/
public class FibCalculator extends Fibonacci implements Calculator {

private static Map<Integer, Integer> memoized = new HashMap<Integer, Integer>();
public static void main(String[] args) {
memoized.put(1, 1);
memoized.put(2, 1);
System.out.println(fibonacci(12));
}
}
```

## JavaScript


```js
function factorial(n) {
if (n === 0) {
return 1; // 0! = 1
}
return n * factorial(n - 1);
}
```

## JavaScript React (JSX)


```jsx
/>
function Story(props) {
const SpecificStory = components[props.storyType];
return story={ props.story } attr2="&ref;" attr3="Hello\n" />;
}
```

## JSON


```json
[{
"hello": "world",
"count": 1,
"bool": true
}]
```

## Matlab


```matlab
% Numbers _____________________________________________
5, 5.5, .1, 0.1, 0.4e5, 1.2e-5, 5i, 5.3i, 6j, .345+3i
5', 5.5', .1', 0.1', 0.4e5', 1.2e-5', 5i', 5.3i', 6j', .345+3i'
```

## Markdown


```markdown
-**bold** `code`
-> quote
+**bold** `code`
+
>
quote

```

## Mustache/Handlebars


```handlebars
{{#movie}}

{{title}}


src="{{poster}}" alt="{{title}}"/>


Rating - {{ratings.critics_rating}}

{{/movie}}
```

## Perl


```perl
my $var = shift;

$var =~ s/bla/foo/igs;
$var =~ s!bla!foo!igs;
$var =~ s#bla#foo#igs;
```

## PHP


```php
namespace Application\Controller;

use Zend\Mvc\Controller\AbstractActionController;

class IndexController extends AbstractActionController
{
}
```

## Python


```python
def addXToY(x, y):
total = x + y
print total
```

## QML


```qml
Text {
id: hello
width: 100
text: "Hello world!"
}
```

## R


```r
# Declare function “f” with parameters “x”, “y“
# that returns a linear combination of x and y.
f <- function(x, y) {
z <- 3 * x + 4 * y
return(z)
}
```

## Ruby


```ruby
require 'Config'
def CGI::escape(string)
string.gsub(/([^ a-zA-Z0-9_.-]+)/n) do
'%' + $1.unpack('H2' * $1.size).join('%').upcase
end.tr(' ', '+')
end
```

## Rust


```rust
fn main() {
println!("Hello world!");
}
```

## MySQL


```mysql
-- comment
CREATE TABLE stuff COLUMNS(col1 INT, col2 Varchar);
SELECT * FROM stuff WHERE id = 'string';
select * from stuff where id < 0.42;
Select col1, col2 From stuff Where stuff.col1 IS NOT NuLL;
```

## TypeScript


```ts
class Student {
fullName: string;
constructor(public firstName: string, public middleInitial: string, public lastName: string) {
this.fullName = firstName + " " + middleInitial + " " + lastName;
}
}
```

## XML


```xml
attribute="3">


```

## reStructuredText


```rst
Section Header
==============

.. image:: /path/to/image.jpg

- A bullet list item
```

## Doxygen


```doxygen
a normal member taking two arguments and returning an integer value.
@param a an integer argument.
@param s a constant character pointer.
@see Javadoc_Test()
@see publicVar()
@return The test results
```

## No language specified


```
No language is specified, but it should be still rendered as code block.
```

# Fenced code blocks with more than 3 backticks or tildes


~~~
Fenced code block with 3 tildes.
~~~

`````````
Some implementations of Markdown/MultiMarkdown support more than 3 backticks or tildes.
```
The block ends with the same amount of backticks.
`````````

~~~~~~~~~~~~
Fenced code block with more tildes.
~~~~~~~~~~~~

## With languages


```````html


class="main">Hello world!




```
```````

~~~bash
for f *; do
echo "$f"
done
~~~

~~~~~~~~~python
def addXToY(x, y):
total = x + y
print total
~~~ # <= doesn't end here
~~~~~~~~~

# Italic and bold text


**b** *i* __b__ _i_
***ib*** ___ib___
**_ib_** __*ib*__

* _italic_ **bold** ***ib*** ~~strikeout~~

>
_italic_ **bold** ***ib*** ~~strikeout~~

## Bold

**bold*___text** normal
__bold_***text__ normal

## Italic

*italic _ text* normal
_italic * text_ normal

## Italic-Bold

***italic-bold ** italic-bold*** normal
***bold-italic text **bold-italic text*** normal
***bold*italic*** normal
**_bold-italic text_** normal


_ normal text_ * normal text *
*italic text*normal text*
*italic text *italic text*
**bold text**normal text**
**bold text **bold text**


aaa**bold text**aaaaa
aaa__normal text__aaaaa
пристаням_стремятся_


\*normal text*
_normal text\_
**italic text\**
***only bold\***
**bold\** bold**
diff --git a/autotests/reference/test.ts.ref b/autotests/reference/test.ts.ref index 4901cd4..8eca90c 100644 --- a/autotests/reference/test.ts.ref +++ b/autotests/reference/test.ts.ref @@ -1,189 +1,189 @@ /// types="node" />

// TypeScript Test

class Student {
fullName: string;
constructor(public firstName: string, public middleInitial: string, public lastName: string) {
this.fullName = firstName + " " + middleInitial + " " + lastName;
}
}

interface Person {
firstName: string;
lastName: string;
}

function greeter(person : Person) {
return "Hello, " + person.firstName + " " + person.lastName;
}

let user = new Student("Jane", "M.", "User");

document.body.innerHTML = greeter(user);
JSON.stringify()
console.log("Hello world");

import http = require("http");
import path = require("path");
import URL = url.URL;
import { Readable, Writable } from "stream";
import { isBuffer, isString, isObject } from "util";

const port = 8__88___8;
const baseUrl = new URL(${port});
const rootDir = path.dirname(__dirname);

const defaultBrowser = os.platform() === "win32" ? "edge" : "chrome";
let browser: "edge" | "chrome" | "none" = defaultBrowser;
let grep: string | undefined;

interface FileBasedTestConfiguration {
[setting: string]: string;
}

function swapCase(s: string): string {
return s.replace(/\w/g, (ch) => {
const up = ch.toUpperCase();
return ch === up ? ch.toLowerCase() : up;
});
}

for (var i in pieces) {
switch (true) {
case /^\"?Accession\"?/.test(pieces[i]):
numeration[0] = i;
break;
}
}

const enum ResponseCode {
Success = 200,
BadRequest = 400
}

// Substitutions
export function isInOpenInterval(start: number, end: number) {
return tersible(a => a > start && a < end, () => ${start}${end})
}
const bar = ${x}${y};

// readonly
function f1(mt: [number, number], rt: readonly [number, number]) {
}

function f2(ma: string[], ra: readonly string[], mt: [string, string], rt: readonly [string, string]) {
}

type ReadWrite<T> = { -readonly [P in keyof T] : T[P] };

// const assertion
let obj = { x: 10, y: [20, 30], z: { a: { b: 42 } } } as const;
let r2 = { x: 20, y: 10 } as const;
let r2 = {...p} as const;
let p1 = { x: 10, y: 20 as const };
let p2 = { 10 as const, 'foo' as const };

// Definite assignment operator
class Cl {
- one?: string;
+ one?: string;
two!: string;
}
let x! = 1;

// Function with multiple arguments
const children = [].map<Set<Map<number, string>>>(element => {
if (!this.identityProvider) {
return element;
}
return element;
});

// Numerics
var a = 0xA;
var b = 0b1;
var c = 0o7;
var d = 1.1E+3;
var e = 1.E+3;
var f = .1E+3;
var g = 1E+3;
var h = 1.1;
var i = 1.;
var j = .1;
var k = 1;
var l = 1__.e+3_22 | .2____e2 | 0o1_23 | 11__. ;

// Bigint
const binBig = 0b101n;
const octBig = 0o567n;
const hexBig = 0xC0Bn;
const decBig = 123n;

// Types
let a: null = null;
let b: number = 123;
let c: number = 123.456;
let d: string = ;
let e: undefined = undefined;
let f: boolean = true;
let g: number = 0b111001; // Binary
let h: number = 0o436; // Octal
let i: number = 0xadf0d; // Hexa-Decimal

const query = query<[number], number>(


)

function runQuery() {
const query = createQuery<[number[]], Table<Columns>>(

)
return database.execute(query)
}

aa: <sdf/> string ?<ssd/> string
string // Don't highlight
aa: string assa |
string
string ;
string

aa: { string
string } // Don't highlight

aa: [ string
string ]
aa: ( string
string ) // Don't highlight
aa: string <string>
interface a {
aa: /* comment
*/ string,
bb: /* comment */
number,
cc: // comment
void,
dd:
any,
}

null, <{[key]: () => any}> null
null, <{[key]: () =>{a: number}}> null

// Correctly highlighting regular expressions
dt = ((dt[0] * 1e9 + dt[1]) / 1e6).toFixed(3).replace(/\.?0+$/, '') + 'ms';
(a[0] / 2) / (2)

// Type guards
function isNumber(x: any): x is number {
return typeof x === "number";
}

// Conditional expressions (highlight keywords before ":")
class C {
w = () =>
this.a() ? true : this.b() ? false : true;
z = () =>
this.b() ? hello : k;
}
diff --git a/data/syntax/logcat.xml b/data/syntax/logcat.xml index 5ada0eb..f683cff 100644 --- a/data/syntax/logcat.xml +++ b/data/syntax/logcat.xml @@ -1,210 +1,204 @@ ]> - - - - + + - - - - - - + + + + diff --git a/data/syntax/markdown.xml b/data/syntax/markdown.xml index 87acbbc..a39df65 100644 --- a/data/syntax/markdown.xml +++ b/data/syntax/markdown.xml @@ -1,637 +1,642 @@ - - + + - + - - + + - + ]> - + - + - + + + + - + + - + - + - - - + + + - + + - + diff --git a/data/syntax/typescript-react.xml b/data/syntax/typescript-react.xml index f74d2fd..3fb559d 100644 --- a/data/syntax/typescript-react.xml +++ b/data/syntax/typescript-react.xml @@ -1,488 +1,489 @@ ]> - - + diff --git a/data/syntax/typescript.xml b/data/syntax/typescript.xml index d2d1df1..b0daefd 100644 --- a/data/syntax/typescript.xml +++ b/data/syntax/typescript.xml @@ -1,2089 +1,2092 @@ ]> controlflow##JavaScript goto keywords##JavaScript declare reserved##JavaScript type arguments readonly abstract constructor get set module##JavaScript primitives##JavaScript object namespace module keyof infer string number boolean symbol any void never unknown undefined null object Array ArrayBuffer Atomics Boolean DataView Date Float32Array Float64Array Function Generator GeneratorFunction Int8Array Int16Array Int32Array Intl Map Number Object Proxy Reflect RegExp Set SharedArrayBuffer SIMD String Symbol TypedArray Uint8Array Uint16Array Uint32Array Uint8ClampedArray WeakMap WeakSet Error EvalError InternalError RangeError ReferenceError SyntaxError TypeError URIError Math Promise JSON console process AnalyserNode ArrayBufferView Attr AudioBuffer AudioBufferSourceNode AudioContext AudioDestinationNode AudioListener AudioNode AudioParam BatteryManager BeforeUnloadEvent BiquadFilterNode Blob BufferSource ByteString CSS CSSConditionRule CSSCounterStyleRule CSSGroupingRule CSSMatrix CSSMediaRule CSSPageRule CSSPrimitiveValue CSSRule CSSRuleList CSSStyleDeclaration CSSStyleRule CSSStyleSheet CSSSupportsRule CSSValue CSSValueList CanvasGradient CanvasImageSource CanvasPattern CanvasRenderingContext2D ChannelMergerNode ChannelSplitterNode CharacterData ChromeWorker CloseEvent Comment CompositionEvent Console ConvolverNode Coordinates Credential CredentialsContainer Crypto CryptoKey CustomEvent DOMError DOMException DOMHighResTimeStamp DOMImplementation DOMString DOMStringList DOMStringMap DOMTimeStamp DOMTokenList DataTransfer DataTransferItem DataTransferItemList DedicatedWorkerGlobalScope DelayNode DeviceProximityEvent DirectoryEntry DirectoryEntrySync DirectoryReader DirectoryReaderSync Document DocumentFragment DocumentTouch DocumentType DragEvent DynamicsCompressorNode Element Entry EntrySync ErrorEvent Event EventListener EventSource EventTarget FederatedCredential FetchEvent File FileEntry FileEntrySync FileException FileList FileReader FileReaderSync FileSystem FileSystemSync FontFace FormData GainNode Gamepad GamepadButton GamepadEvent Geolocation GlobalEventHandlers HTMLAnchorElement HTMLAreaElement HTMLAudioElement HTMLBRElement HTMLBaseElement HTMLBodyElement HTMLButtonElement HTMLCanvasElement HTMLCollection HTMLContentElement HTMLDListElement HTMLDataElement HTMLDataListElement HTMLDialogElement HTMLDivElement HTMLDocument HTMLElement HTMLEmbedElement HTMLFieldSetElement HTMLFontElement HTMLFormControlsCollection HTMLFormElement HTMLHRElement HTMLHeadElement HTMLHeadingElement HTMLHtmlElement HTMLIFrameElement HTMLImageElement HTMLInputElement HTMLKeygenElement HTMLLIElement HTMLLabelElement HTMLLegendElement HTMLLinkElement HTMLMapElement HTMLMediaElement HTMLMetaElement HTMLMeterElement HTMLModElement HTMLOListElement HTMLObjectElement HTMLOptGroupElement HTMLOptionElement HTMLOptionsCollection HTMLOutputElement HTMLParagraphElement HTMLParamElement HTMLPreElement HTMLProgressElement HTMLQuoteElement HTMLScriptElement HTMLSelectElement HTMLShadowElement HTMLSourceElement HTMLSpanElement HTMLStyleElement HTMLTableCaptionElement HTMLTableCellElement HTMLTableColElement HTMLTableDataCellElement HTMLTableElement HTMLTableHeaderCellElement HTMLTableRowElement HTMLTableSectionElement HTMLTextAreaElement HTMLTimeElement HTMLTitleElement HTMLTrackElement HTMLUListElement HTMLUnknownElement HTMLVideoElement HashChangeEvent History IDBCursor IDBCursorWithValue IDBDatabase IDBEnvironment IDBFactory IDBIndex IDBKeyRange IDBMutableFile IDBObjectStore IDBOpenDBRequest IDBRequest IDBTransaction IDBVersionChangeEvent IIRFilterNode IdentityManager ImageBitmap ImageBitmapFactories ImageData Index InputDeviceCapabilities InputEvent InstallEvent InstallTrigger KeyboardEvent LinkStyle LocalFileSystem LocalFileSystemSync Location MIDIAccess MIDIConnectionEvent MIDIInput MIDIInputMap MIDIOutputMap MediaElementAudioSourceNode MediaError MediaKeyMessageEvent MediaKeySession MediaKeyStatusMap MediaKeySystemAccess MediaKeySystemConfiguration MediaKeys MediaRecorder MediaStream MediaStreamAudioDestinationNode MediaStreamAudioSourceNode MessageChannel MessageEvent MessagePort MouseEvent MutationObserver MutationRecord NamedNodeMap Navigator NavigatorConcurrentHardware NavigatorGeolocation NavigatorID NavigatorLanguage NavigatorOnLine Node NodeFilter NodeIterator NodeList NonDocumentTypeChildNode Notification OfflineAudioCompletionEvent OfflineAudioContext OscillatorNode PageTransitionEvent PannerNode ParentNode PasswordCredential Path2D PaymentAddress PaymentRequest PaymentResponse Performance PerformanceEntry PerformanceFrameTiming PerformanceMark PerformanceMeasure PerformanceNavigation PerformanceNavigationTiming PerformanceObserver PerformanceObserverEntryList PerformanceResourceTiming PerformanceTiming PeriodicSyncEvent PeriodicWave Plugin Point PointerEvent PopStateEvent PortCollection Position PositionError PositionOptions PresentationConnectionClosedEvent PresentationConnectionList PresentationReceiver ProcessingInstruction ProgressEvent PromiseRejectionEvent PushEvent PushRegistrationManager RTCCertificate RTCConfiguration RTCPeerConnection RTCSessionDescriptionCallback RTCStatsReport RadioNodeList RandomSource Range ReadableByteStream RenderingContext SVGAElement SVGAngle SVGAnimateColorElement SVGAnimateElement SVGAnimateMotionElement SVGAnimateTransformElement SVGAnimatedAngle SVGAnimatedBoolean SVGAnimatedEnumeration SVGAnimatedInteger SVGAnimatedLength SVGAnimatedLengthList SVGAnimatedNumber SVGAnimatedNumberList SVGAnimatedPoints SVGAnimatedPreserveAspectRatio SVGAnimatedRect SVGAnimatedString SVGAnimatedTransformList SVGAnimationElement SVGCircleElement SVGClipPathElement SVGCursorElement SVGDefsElement SVGDescElement SVGElement SVGEllipseElement SVGEvent SVGFilterElement SVGFontElement SVGFontFaceElement SVGFontFaceFormatElement SVGFontFaceNameElement SVGFontFaceSrcElement SVGFontFaceUriElement SVGForeignObjectElement SVGGElement SVGGlyphElement SVGGradientElement SVGHKernElement SVGImageElement SVGLength SVGLengthList SVGLineElement SVGLinearGradientElement SVGMPathElement SVGMaskElement SVGMatrix SVGMissingGlyphElement SVGNumber SVGNumberList SVGPathElement SVGPatternElement SVGPoint SVGPolygonElement SVGPolylineElement SVGPreserveAspectRatio SVGRadialGradientElement SVGRect SVGRectElement SVGSVGElement SVGScriptElement SVGSetElement SVGStopElement SVGStringList SVGStylable SVGStyleElement SVGSwitchElement SVGSymbolElement SVGTRefElement SVGTSpanElement SVGTests SVGTextElement SVGTextPositioningElement SVGTitleElement SVGTransform SVGTransformList SVGTransformable SVGUseElement SVGVKernElement SVGViewElement ServiceWorker ServiceWorkerContainer ServiceWorkerGlobalScope ServiceWorkerRegistration ServiceWorkerState ShadowRoot SharedWorker SharedWorkerGlobalScope SourceBufferList StereoPannerNode Storage StorageEvent StyleSheet StyleSheetList SubtleCrypto SyncEvent Text TextMetrics TimeEvent TimeRanges Touch TouchEvent TouchList Transferable TreeWalker UIEvent USVString VRDisplayCapabilities ValidityState WaveShaperNode WebGL WebGLActiveInfo WebGLBuffer WebGLContextEvent WebGLFramebuffer WebGLProgram WebGLRenderbuffer WebGLRenderingContext WebGLShader WebGLShaderPrecisionFormat WebGLTexture WebGLTimerQueryEXT WebGLTransformFeedback WebGLUniformLocation WebGLVertexArrayObject WebGLVertexArrayObjectOES WebSocket WebSockets WebVTT WheelEvent Window WindowBase64 WindowEventHandlers WindowTimers Worker WorkerGlobalScope WorkerLocation WorkerNavigator XMLHttpRequest XMLHttpRequestEventTarget XMLSerializer XPathExpression XPathResult XSLTProcessor Buffer EventEmitter Server Pipe Socket REPLServer ReadStream WriteStream Stream Inflate Deflate InflateRaw DeflateRaw GZip GUnzip Unzip Zip constructor length prototype __proto__ EPSILON MAX_SAFE_INTEGER MAX_VALUE MIN_SAFE_INTEGER MIN_VALUE NEGATIVE_INFINITY POSITIVE_INFINITY clearInterval clearTimeout decodeURI decodeURIComponent encodeURI encodeURIComponent escape eval isFinite isNaN parseFloat parseInt require setTimeout setInterval super unescape uneval abs acos acosh asin asinh atan atan2 atanh cbrt ceil clz32 cos cosh exp expm1 floor fround hypot imul log log10 log1p log2 max min pow random round sign sin sinh sqrt tan tanh trunc E LN10 LN2 LOG10E LOG2E PI SQRT1_2 SQRT2 assert clear count debug dir error group groupCollapsed groupEnd info log profile profileEnd table time timeEnd timeStamp trace warn parse stringify global GLOBAL root __dirname __filename arch argv config connected env execArgv execPath exitCode mainModule pid platform release stderr stdin stdout title version versions abort chdir cwd disconnect exit setegid seteuid getegid geteuid setgid setuid getgid getuid send setgroups getgroups initgroups kill memoryUsage nextTick umask uptime hrtime all catch finally race reject resolve then document event navigator performance screen window ATTRIBUTE_NODE CDATA_SECTION_NODE COMMENT_NODE DOCUMENT_FRAGMENT_NODE DOCUMENT_NODE DOCUMENT_TYPE_NODE DOMSTRING_SIZE_ERR ELEMENT_NODE ENTITY_NODE ENTITY_REFERENCE_NODE HIERARCHY_REQUEST_ERR INDEX_SIZE_ERR INUSE_ATTRIBUTE_ERR INVALID_CHARACTER_ERR NO_DATA_ALLOWED_ERR NO_MODIFICATION_ALLOWED_ERR NOT_FOUND_ERR NOT_SUPPORTED_ERR NOTATION_NODE PROCESSING_INSTRUCTION_NODE TEXT_NODE WRONG_DOCUMENT_ERR _content x y z abbr above accept acceptCharset accessKey action align aLink vLink aLinkcolor vLinkcolor all alt anchors appCodeName appCore applets appMinorVersion appName appVersion archive areas arguments attributes availHeight availLeft availTop availWidth axis background backgroundColor backgroundImage below bgColor body border borderBottomWidth borderColor borderLeftWidth borderRightWidth borderStyle borderTopWidth borderWidth bottom bufferDepth callee caller caption cellPadding cells cellSpacing ch characterSet charset checked childNodes chOff cite classes className clear clientInformation clip clipBoardData closed code codeBase codeType color colorDepth cols colSpan compact complete components content controllers cookie cookieEnabled cords cpuClass crypto current data dateTime declare defaultCharset defaultChecked defaultSelected defaultStatus defaultValue defaultView defer description dialogArguments dialogHeight dialogLeft dialogTop dialogWidth dir directories disabled display docmain doctype documentElement elements embeds enabledPlugin encoding enctype entities event expando external face fgColor filename firstChild fontFamily fontSize fontWeight form formName forms frame frameBorder frameElement frames hasFocus hash headers height history host hostname href hreflang hspace htmlFor httpEquiv id ids ignoreCase images implementation index innerHeight innerWidth input isMap label lang language lastChild lastIndex lastMatch lastModified lastParen layers layerX layerY left leftContext lineHeight link linkColor links listStyleType localName location locationbar longDesc lowsrc lowSrc marginBottom marginHeight marginLeft marginRight marginTop marginWidth maxLength media menubar method mimeTypes multiline multiple name nameProp namespaces namespaceURI next nextSibling nodeName nodeType nodeValue noHref noResize noShade notationName notations noWrap object offscreenBuffering onLine onreadystatechange opener opsProfile options oscpu outerHeight outerWidth ownerDocument paddingBottom paddingLeft paddingRight paddingTop pageX pageY pageXOffset pageYOffset parent parentLayer parentNode parentWindow pathname personalbar pixelDepth pkcs11 platform plugins port prefix previous previousDibling product productSub profile profileend prompt prompter protocol publicId readOnly readyState referrer rel responseText responseXML rev right rightContext rowIndex rows rowSpan rules scheme scope screenX screenY screenLeft screenTop scripts scrollbars scrolling sectionRowIndex security securityPolicy selected selectedIndex selection self shape siblingAbove siblingBelow size source specified standby start status statusbar statusText style styleSheets suffixes summary systemId systemLanguage tagName tags target tBodies text textAlign textDecoration textIndent textTransform tFoot tHead title toolbar top type undefined uniqueID updateInterval URL URLUnencoded useMap userAgent userLanguage userProfile vAlign value valueType vendor vendorSub version visibility vspace whiteSpace width XMLDocument XSLDocument zIndex acceptNode add addEventListener addTextTrack adoptNode after animate append appendChild appendData before blur canPlayType captureStream caretPositionFromPoint caretRangeFromPoint checkValidity clear click cloneContents cloneNode cloneRange close closest collapse compareBoundaryPoints compareDocumentPosition comparePoint contains convertPointFromNode convertQuadFromNode convertRectFromNode createAttribute createAttributeNS createCaption createCDATASection createComment createContextualFragment createDocument createDocumentFragment createDocumentType createElement createElementNS createEntityReference createEvent createExpression createHTMLDocument createNodeIterator createNSResolver createProcessingInstruction createRange createShadowRoot createTBody createTextNode createTFoot createTHead createTreeWalker delete deleteCaption deleteCell deleteContents deleteData deleteRow deleteTFoot deleteTHead detach disconnect dispatchEvent elementFromPoint elementsFromPoint enableStyleSheetsForSet entries evaluate execCommand exitFullscreen exitPointerLock expand extractContents fastSeek firstChild focus forEach get getAll getAnimations getAttribute getAttributeNames getAttributeNode getAttributeNodeNS getAttributeNS getBoundingClientRect getBoxQuads getClientRects getContext getDestinationInsertionPoints getElementById getElementsByClassName getElementsByName getElementsByTagName getElementsByTagNameNS getItem getNamedItem getSelection getStartDate getVideoPlaybackQuality has hasAttribute hasAttributeNS hasAttributes hasChildNodes hasFeature hasFocus importNode initEvent insertAdjacentElement insertAdjacentHTML insertAdjacentText insertBefore insertCell insertData insertNode insertRow intersectsNode isDefaultNamespace isEqualNode isPointInRange isSameNode item key keys lastChild load lookupNamespaceURI lookupPrefix matches move moveAttribute moveAttributeNode moveChild moveNamedItem namedItem nextNode nextSibling normalize observe open parentNode pause play postMessage prepend preventDefault previousNode previousSibling probablySupportsContext queryCommandEnabled queryCommandIndeterm queryCommandState queryCommandSupported queryCommandValue querySelector querySelectorAll registerContentHandler registerElement registerProtocolHandler releaseCapture releaseEvents remove removeAttribute removeAttributeNode removeAttributeNS removeChild removeEventListener removeItem replace replaceChild replaceData replaceWith reportValidity requestFullscreen requestPointerLock reset scroll scrollBy scrollIntoView scrollTo seekToNextFrame select selectNode selectNodeContents set setAttribute setAttributeNode setAttributeNodeNS setAttributeNS setCapture setCustomValidity setEnd setEndAfter setEndBefore setItem setNamedItem setRangeText setSelectionRange setSinkId setStart setStartAfter setStartBefore slice splitText stepDown stepUp stopImmediatePropagation stopPropagation submit substringData supports surroundContents takeRecords terminate toBlob toDataURL toggle toString values write writeln onRowsinserted onRowsdelete onRowenter onRowexit onResize onResizestart onResizeend onReset onReadystatechange onMouseout onMouseover onMousedown onMouseup onMousemove onBeforecut onBeforedeactivate onBeforeunload onBeforeupdate onBeforepaste onBeforeprint onBeforeeditfocus onBeforeactivate onBlur onScrolltop onSubmit onSelect onSelectstart onSelectionchange onHover onHelp onChange onContextmenu onControlselect onCut onCellchange onClock onClose onDeactivate onDatasetchanged onDatasetcomplete onDataavailable onDrop onDrag onDragstart onDragover onDragdrop onDragenter onDragend onDragleave onDblclick onUnload onPaste onPropertychange onError onErrorupdate onKeydown onKeyup onKeypress onFocus onLoad onActivate onAfterupdate onAfterprint onAbort shift showModelessDialog showModalDialog showHelp scroll scrollX scrollByPages scrollByLines scrollY scrollTo stop strike sizeToContent sidebar signText sort sup sub substr substring splice split send setMilliseconds setSeconds setMinutes setHours setMonth setYear setFullYear setDate setUTCMilliseconds setUTCSeconds setUTCMinutes setUTCHours setUTCMonth setUTCFullYear setUTCDate setTime setHotkeys setCursor setZOptions setActive setResizable setRequestHeader search slice savePreferences small home handleEvent navigate char charCodeAt charAt concat contextual confirm compile clear captureEvents call createStyleSheet createPopup createEventObject toGMTString toUTCString toString toSource toUpperCase toLowerCase toLocaleString test taint taintEnabled indexOf italics disableExternalCapture dump detachEvent unshift untaint unwatch updateCommands join javaEnabled pop push plugins.refresh paddings parse print prompt preference enableExternalCapture exec execScript valueOf UTC find file fileModifiedDate fileSize fileCreatedDate fileUpdatedDate fixed fontsize fontcolor forward fromCharCode watch link load lastIndexOf anchor attachEvent atob apply alert abort routeEvents resize resizeBy resizeTo recalc returnValue replace reverse reload releaseCapture releaseEvents go getMilliseconds getSeconds getMinutes getHours getMonth getDay getYear getFullYear getTime getDate getTimezoneOffset getUTCMilliseconds getUTCSeconds getUTCMinutes getUTCHours getUTCDay getUTCMonth getUTCFullYear getUTCDate getAttention getSelection getResponseHeader getAllResponseHeaders moveBy moveBelow moveTo moveToAbsolute moveAbove mergeAttributes match margins btoa big bold borderWidths blink back - + + +