diff --git a/.gitmodules b/.gitmodules index dbb6dc9c..5780f351 100644 --- a/.gitmodules +++ b/.gitmodules @@ -221,3 +221,6 @@ [submodule "assets/syntaxes/02_Extra/Groff"] path = assets/syntaxes/02_Extra/Groff url = https://github.com/carsonoid/sublime_man_page_support +[submodule "assets/syntaxes/02_Extra/http-request-response"] + path = assets/syntaxes/02_Extra/http-request-response + url = https://github.com/keith-hall/http-request-response-syntax.git diff --git a/CHANGELOG.md b/CHANGELOG.md index 13df979d..c6b046cc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,7 @@ ## Syntaxes - Groff, see #1685 (@scop) +- HTTP Requests and Responses, see #1748 (@keith-hall) ## New themes diff --git a/assets/syntaxes/02_Extra/http-request-response b/assets/syntaxes/02_Extra/http-request-response new file mode 160000 index 00000000..f58bffe4 --- /dev/null +++ b/assets/syntaxes/02_Extra/http-request-response @@ -0,0 +1 @@ +Subproject commit f58bffe48314f1ef350f555649e08445a23edf4c diff --git a/doc/assets.md b/doc/assets.md index d30d3ab8..ee657101 100644 --- a/doc/assets.md +++ b/doc/assets.md @@ -9,7 +9,9 @@ in the `.sublime-syntax` format. **Important:** Before proceeding, verify that the syntax you wish to add meets the [criteria for inclusion](#Criteria-for-inclusion-of-new-syntaxes). 1. Find a Sublime Text syntax for the given language, preferably in a separate Git repository - which can be included as a submodule (under `assets/syntaxes`). + which can be included as a submodule (under `assets/syntaxes`) using + `git submodule add ./assets/syntaxes/02_Extra/`, replacing + the contents of the angle brackets as appropriate. 2. If the Sublime Text syntax is only available as a `.tmLanguage` file, open the file in Sublime Text and convert it to a `.sublime-syntax` file via *Tools* -> *Developer* -> @@ -26,7 +28,8 @@ in the `.sublime-syntax` format. 6. Add a syntax test for the new language. See [below](#Syntax-tests) for details. 7. If you send a pull request with your changes, please do *not* include the changed `syntaxes.bin` - file. A new binary cache file will be created once before every new release of `bat`. + file. A new binary cache file will be created once before every new release of `bat`. This + avoids bloating the repository size unnecessarily. ### Syntax tests diff --git a/tests/syntax-tests/highlighted/http-request-response/example.http b/tests/syntax-tests/highlighted/http-request-response/example.http new file mode 100644 index 00000000..05537062 --- /dev/null +++ b/tests/syntax-tests/highlighted/http-request-response/example.http @@ -0,0 +1,44 @@ +POST /foo/bar?id=4&x=y%20z HTTP/1.1 +X-Forwarded-For: 127.0.0.1 +Content-Length: 124 +Cache-Control: no-cache +X-Forwarded-Proto: https +Content-Type: application/json; charset=utf-8 +Host: example.com +Accept: */*; q=0.5, application/xml +Accept-Encoding: gzip + +{ + "id": "blahblahblahblah", + "object": "event", + "api_version": "2020-03-02", + "created": 1626790174, + "data": { + } +} + + +HTTP/1.1 200 OK +Server: nginx +Date: Fri, 23 Jul 2021 10:15:12 GMT +Content-Type: text/html; charset=utf-8 +Transfer-Encoding: chunked +Connection: keep-alive +Vary: Accept-Encoding +Cache-Control: private; max-age=0 +X-Frame-Options: DENY +X-Content-Type-Options: nosniff +X-XSS-Protection: 1; mode=block +Referrer-Policy: origin +Strict-Transport-Security: max-age=31556900 + + +<html> +<head> + <meta charset="utf-8"> + <title>Hello World + +<body> + + + diff --git a/tests/syntax-tests/source/http-request-response/example.http b/tests/syntax-tests/source/http-request-response/example.http new file mode 100644 index 00000000..26ec1395 --- /dev/null +++ b/tests/syntax-tests/source/http-request-response/example.http @@ -0,0 +1,44 @@ +POST /foo/bar?id=4&x=y%20z HTTP/1.1 +X-Forwarded-For: 127.0.0.1 +Content-Length: 124 +Cache-Control: no-cache +X-Forwarded-Proto: https +Content-Type: application/json; charset=utf-8 +Host: example.com +Accept: */*; q=0.5, application/xml +Accept-Encoding: gzip + +{ + "id": "blahblahblahblah", + "object": "event", + "api_version": "2020-03-02", + "created": 1626790174, + "data": { + } +} + + +HTTP/1.1 200 OK +Server: nginx +Date: Fri, 23 Jul 2021 10:15:12 GMT +Content-Type: text/html; charset=utf-8 +Transfer-Encoding: chunked +Connection: keep-alive +Vary: Accept-Encoding +Cache-Control: private; max-age=0 +X-Frame-Options: DENY +X-Content-Type-Options: nosniff +X-XSS-Protection: 1; mode=block +Referrer-Policy: origin +Strict-Transport-Security: max-age=31556900 + + + + + + Hello World + + + + +