diff --git a/.gitmodules b/.gitmodules index 7cea6c76..dbb6dc9c 100644 --- a/.gitmodules +++ b/.gitmodules @@ -217,4 +217,7 @@ url = https://github.com/vidann1/visual-studio-dark-plus.git [submodule "assets/syntaxes/02_Extra/SublimeEthereum"] path = assets/syntaxes/02_Extra/SublimeEthereum - url = https://github.com/davidhq/SublimeEthereum.git \ No newline at end of file + url = https://github.com/davidhq/SublimeEthereum.git +[submodule "assets/syntaxes/02_Extra/Groff"] + path = assets/syntaxes/02_Extra/Groff + url = https://github.com/carsonoid/sublime_man_page_support diff --git a/assets/patches/Groff.sublime-syntax.patch b/assets/patches/Groff.sublime-syntax.patch new file mode 100644 index 00000000..b263676a --- /dev/null +++ b/assets/patches/Groff.sublime-syntax.patch @@ -0,0 +1,16 @@ +diff --git syntaxes/02_Extra/Groff/Man Page/Man Page.sublime-syntax syntaxes/02_Extra/Groff/Man Page/Man Page.sublime-syntax +index 57834af..6648664 100644 +--- syntaxes/02_Extra/Groff/Man Page/Man Page.sublime-syntax ++++ syntaxes/02_Extra/Groff/Man Page/Man Page.sublime-syntax +@@ -4,9 +4,9 @@ + # - man-pages(7) + # - groff(7) + --- +-name: Man Page (groff/troff) ++name: Groff/troff + scope: text.groff +-file_extensions: [man, groff, troff, '1', '2', '3', '4', '5', '6', '7'] ++file_extensions: [groff, troff, '1', '2', '3', '4', '5', '6', '7', '8', '9'] + + contexts: + main: diff --git a/assets/syntaxes/02_Extra/Groff b/assets/syntaxes/02_Extra/Groff new file mode 160000 index 00000000..651091c7 --- /dev/null +++ b/assets/syntaxes/02_Extra/Groff @@ -0,0 +1 @@ +Subproject commit 651091c7e266e05c0a529b137b6efd43d717894c diff --git a/tests/syntax-tests/highlighted/Groff/rustdoc.1 b/tests/syntax-tests/highlighted/Groff/rustdoc.1 new file mode 100644 index 00000000..7dd3a15e --- /dev/null +++ b/tests/syntax-tests/highlighted/Groff/rustdoc.1 @@ -0,0 +1,126 @@ +.TH RUSTDOC "1" "" "rustdoc " "User Commands" +.SH NAME +rustdoc \- generate documentation from Rust source code +.SH SYNOPSIS +.B rustdoc +[\fIOPTIONS\fR] \fIINPUT\fR + +.SH DESCRIPTION +This tool generates API reference documentation by extracting comments from +source code written in the Rust language, available at +<\fBhttps://www.rust-lang.org\fR>. It accepts several input formats and +provides several output formats for the generated documentation. + +.SH OPTIONS + +.TP +\fB\-r\fR, \fB\-\-input\-format\fR \fIFORMAT\fR +rust +.TP +\fB\-w\fR, \fB\-\-output\-format\fR \fIFORMAT\fR +html +.TP +\fB\-o\fR, \fB\-\-output\fR \fIOUTPUT\fR, +where to place the output (default: \fIdoc/\fR for html) +.TP +\fB\-\-passes\fR \fILIST\fR +space\[hy]separated list of passes to run (default: '') +.TP +\fB\-\-no\-defaults\fR +don't run the default passes +.TP +\fB\-\-plugins\fR \fILIST\fR +space-separated list of plugins to run (default: '') +.TP +\fB\-\-plugin\-path\fR \fIDIR\fR +directory to load plugins from (default: \fI/tmp/rustdoc_ng/plugins\fR) +.TP +\fB\-\-target\fR \fITRIPLE\fR +target triple to document +.TP +\fB\-\-crate\-name\fR \fINAME\fR +specify the name of this crate +.TP +\fB\-L\fR, \fB\-\-library\-path\fR \fIDIR\fR +directory to add to crate search path +.TP +\fB\-\-cfg\fR \fISPEC\fR +pass a \fI\-\-cfg\fR to rustc +.TP +\fB\-\-extern\fR \fIVAL\fR +pass an \fI\-\-extern\fR to rustc +.TP +\fB\-\-test\fR +run code examples as tests +.TP +\fB\-\-test\-args\fR \fIARGS\fR +pass arguments to the test runner +.TP +\fB\-\-html\-in\-header\fR \fIFILE\fR +file to add to  +.TP +\fB\-\-html\-before\-content\fR \fIFILES\fR +files to include inline between and the content of a rendered Markdown +file or generated documentation +.TP +\fB\-\-markdown\-before\-content\fR \fIFILES\fR +files to include inline between and the content of a rendered +Markdown file or generated documentation +.TP +\fB\-\-html\-after\-content\fR \fIFILES\fR +files to include inline between the content and of a rendered +Markdown file or generated documentation +.TP +\fB\-\-markdown\-after\-content\fR \fIFILES\fR +files to include inline between the content and of a rendered +Markdown file or generated documentation +.TP +\fB\-\-markdown\-css\fR \fIFILES\fR +CSS files to include via in a rendered Markdown file Markdown file or +generated documentation +.TP +\fB\-\-markdown\-playground\-url\fR \fIURL\fR +URL to send code snippets to +.TP +\fB\-\-markdown\-no\-toc\fR +don't include table of contents +.TP +\fB\-h\fR, \fB\-\-extend\-css\fR +to redefine some css rules with a given file to generate doc with your own theme +.TP +\fB\-V\fR, \fB\-\-version\fR +Print rustdoc's version + +.SH "OUTPUT FORMATS" + +The rustdoc tool can generate output in an HTML format. + +If using an HTML format, then the specified output destination will be the root +directory of an HTML structure for all the documentation. +Pages will be placed into this directory, and source files will also +possibly be rendered into it as well. + +.SH "EXAMPLES" + +To generate documentation for the source in the current directory: + $ rustdoc hello.rs + +List all available passes that rustdoc has, along with default passes: + $ rustdoc \-\-passes list + +The generated HTML can be viewed with any standard web browser. + +.SH "SEE ALSO" + +.BR rustc (1) + +.SH "BUGS" +See <\fBhttps://github.com/rust\-lang/rust/issues\fR> +for issues. + +.SH "AUTHOR" +See the version control history or <\fBhttps://thanks.rust\-lang.org\fR> + +.SH "COPYRIGHT" +This work is dual\[hy]licensed under Apache\ 2.0 and MIT terms. +See \fICOPYRIGHT\fR file in the rust source distribution. diff --git a/tests/syntax-tests/source/Groff/LICENSE.md b/tests/syntax-tests/source/Groff/LICENSE.md new file mode 100644 index 00000000..327a1ab3 --- /dev/null +++ b/tests/syntax-tests/source/Groff/LICENSE.md @@ -0,0 +1,235 @@ +The `rustdoc.1` file has been added from https://github.com/rust-lang/rust/blob/a75e74df89230bc429a550e29d5c566de5f95deb/src/doc/man/rustdoc.1 under the following license: + +```text +Short version for non-lawyers: + +The Rust Project is dual-licensed under Apache 2.0 and MIT +terms. + + +Longer version: + +Copyrights in the Rust project are retained by their contributors. No +copyright assignment is required to contribute to the Rust project. + +Some files include explicit copyright notices and/or license notices. +For full authorship information, see the version control history or +https://thanks.rust-lang.org + +Except as otherwise noted (below and/or in individual files), Rust is +licensed under the Apache License, Version 2.0 or + or the MIT license + or , at your option. + + +The Rust Project includes packages written by third parties. +The following third party packages are included, and carry +their own copyright notices and license terms: + +* LLVM. Code for this package is found in src/llvm-project. + + Copyright (c) 2003-2013 University of Illinois at + Urbana-Champaign. All rights reserved. + + Developed by: + + LLVM Team + + University of Illinois at Urbana-Champaign + + http://llvm.org + + Permission is hereby granted, free of charge, to any + person obtaining a copy of this software and associated + documentation files (the "Software"), to deal with the + Software without restriction, including without + limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of + the Software, and to permit persons to whom the Software + is furnished to do so, subject to the following + conditions: + + * Redistributions of source code must retain the + above copyright notice, this list of conditions + and the following disclaimers. + + * Redistributions in binary form must reproduce the + above copyright notice, this list of conditions + and the following disclaimers in the documentation + and/or other materials provided with the + distribution. + + * Neither the names of the LLVM Team, University of + Illinois at Urbana-Champaign, nor the names of its + contributors may be used to endorse or promote + products derived from this Software without + specific prior written permission. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF + ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED + TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A + PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT + SHALL THE CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE + FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT + OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + OTHER DEALINGS WITH THE SOFTWARE. + +* Additional libraries included in LLVM carry separate + BSD-compatible licenses. See src/llvm-project/llvm/LICENSE.TXT + for details. + +* compiler-rt, in src/compiler-rt is dual licensed under + LLVM's license and MIT: + + Copyright (c) 2009-2014 by the contributors listed in + CREDITS.TXT + + All rights reserved. + + Developed by: + + LLVM Team + + University of Illinois at Urbana-Champaign + + http://llvm.org + + Permission is hereby granted, free of charge, to any + person obtaining a copy of this software and associated + documentation files (the "Software"), to deal with the + Software without restriction, including without + limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of + the Software, and to permit persons to whom the Software + is furnished to do so, subject to the following + conditions: + + * Redistributions of source code must retain the + above copyright notice, this list of conditions + and the following disclaimers. + + * Redistributions in binary form must reproduce the + above copyright notice, this list of conditions + and the following disclaimers in the documentation + and/or other materials provided with the + distribution. + + * Neither the names of the LLVM Team, University of + Illinois at Urbana-Champaign, nor the names of its + contributors may be used to endorse or promote + products derived from this Software without + specific prior written permission. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF + ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED + TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A + PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT + SHALL THE CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE + FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT + OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + OTHER DEALINGS WITH THE SOFTWARE. + + ======================================================== + + Copyright (c) 2009-2014 by the contributors listed in + CREDITS.TXT + + Permission is hereby granted, free of charge, to any + person obtaining a copy of this software and associated + documentation files (the "Software"), to deal in the + Software without restriction, including without + limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of + the Software, and to permit persons to whom the Software + is furnished to do so, subject to the following + conditions: + + The above copyright notice and this permission notice + shall be included in all copies or substantial portions + of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF + ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED + TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A + PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT + SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + +* Portions of the FFI code for interacting with the native ABI + is derived from the Clay programming language, which carries + the following license. + + Copyright (C) 2008-2010 Tachyon Technologies. + All rights reserved. + + Redistribution and use in source and binary forms, with + or without modification, are permitted provided that the + following conditions are met: + + 1. Redistributions of source code must retain the above + copyright notice, this list of conditions and the + following disclaimer. + + 2. Redistributions in binary form must reproduce the + above copyright notice, this list of conditions and + the following disclaimer in the documentation and/or + other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + DEVELOPERS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE + USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + OF SUCH DAMAGE. + +* libbacktrace, under src/libbacktrace: + + Copyright (C) 2012-2014 Free Software Foundation, Inc. + Written by Ian Lance Taylor, Google. + + Redistribution and use in source and binary forms, with + or without modification, are permitted provided that the + following conditions are met: + + (1) Redistributions of source code must retain the + above copyright notice, this list of conditions and + the following disclaimer. + + (2) Redistributions in binary form must reproduce + the above copyright notice, this list of conditions + and the following disclaimer in the documentation + and/or other materials provided with the + distribution. + + (3) The name of the author may not be used to + endorse or promote products derived from this + software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN + NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE + USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + OF SUCH DAMAGE. */ +``` diff --git a/tests/syntax-tests/source/Groff/rustdoc.1 b/tests/syntax-tests/source/Groff/rustdoc.1 new file mode 100644 index 00000000..d7f78e8f --- /dev/null +++ b/tests/syntax-tests/source/Groff/rustdoc.1 @@ -0,0 +1,126 @@ +.TH RUSTDOC "1" "" "rustdoc " "User Commands" +.SH NAME +rustdoc \- generate documentation from Rust source code +.SH SYNOPSIS +.B rustdoc +[\fIOPTIONS\fR] \fIINPUT\fR + +.SH DESCRIPTION +This tool generates API reference documentation by extracting comments from +source code written in the Rust language, available at +<\fBhttps://www.rust-lang.org\fR>. It accepts several input formats and +provides several output formats for the generated documentation. + +.SH OPTIONS + +.TP +\fB\-r\fR, \fB\-\-input\-format\fR \fIFORMAT\fR +rust +.TP +\fB\-w\fR, \fB\-\-output\-format\fR \fIFORMAT\fR +html +.TP +\fB\-o\fR, \fB\-\-output\fR \fIOUTPUT\fR, +where to place the output (default: \fIdoc/\fR for html) +.TP +\fB\-\-passes\fR \fILIST\fR +space\[hy]separated list of passes to run (default: '') +.TP +\fB\-\-no\-defaults\fR +don't run the default passes +.TP +\fB\-\-plugins\fR \fILIST\fR +space-separated list of plugins to run (default: '') +.TP +\fB\-\-plugin\-path\fR \fIDIR\fR +directory to load plugins from (default: \fI/tmp/rustdoc_ng/plugins\fR) +.TP +\fB\-\-target\fR \fITRIPLE\fR +target triple to document +.TP +\fB\-\-crate\-name\fR \fINAME\fR +specify the name of this crate +.TP +\fB\-L\fR, \fB\-\-library\-path\fR \fIDIR\fR +directory to add to crate search path +.TP +\fB\-\-cfg\fR \fISPEC\fR +pass a \fI\-\-cfg\fR to rustc +.TP +\fB\-\-extern\fR \fIVAL\fR +pass an \fI\-\-extern\fR to rustc +.TP +\fB\-\-test\fR +run code examples as tests +.TP +\fB\-\-test\-args\fR \fIARGS\fR +pass arguments to the test runner +.TP +\fB\-\-html\-in\-header\fR \fIFILE\fR +file to add to +.TP +\fB\-\-html\-before\-content\fR \fIFILES\fR +files to include inline between and the content of a rendered Markdown +file or generated documentation +.TP +\fB\-\-markdown\-before\-content\fR \fIFILES\fR +files to include inline between and the content of a rendered +Markdown file or generated documentation +.TP +\fB\-\-html\-after\-content\fR \fIFILES\fR +files to include inline between the content and of a rendered +Markdown file or generated documentation +.TP +\fB\-\-markdown\-after\-content\fR \fIFILES\fR +files to include inline between the content and of a rendered +Markdown file or generated documentation +.TP +\fB\-\-markdown\-css\fR \fIFILES\fR +CSS files to include via in a rendered Markdown file Markdown file or +generated documentation +.TP +\fB\-\-markdown\-playground\-url\fR \fIURL\fR +URL to send code snippets to +.TP +\fB\-\-markdown\-no\-toc\fR +don't include table of contents +.TP +\fB\-h\fR, \fB\-\-extend\-css\fR +to redefine some css rules with a given file to generate doc with your own theme +.TP +\fB\-V\fR, \fB\-\-version\fR +Print rustdoc's version + +.SH "OUTPUT FORMATS" + +The rustdoc tool can generate output in an HTML format. + +If using an HTML format, then the specified output destination will be the root +directory of an HTML structure for all the documentation. +Pages will be placed into this directory, and source files will also +possibly be rendered into it as well. + +.SH "EXAMPLES" + +To generate documentation for the source in the current directory: + $ rustdoc hello.rs + +List all available passes that rustdoc has, along with default passes: + $ rustdoc \-\-passes list + +The generated HTML can be viewed with any standard web browser. + +.SH "SEE ALSO" + +.BR rustc (1) + +.SH "BUGS" +See <\fBhttps://github.com/rust\-lang/rust/issues\fR> +for issues. + +.SH "AUTHOR" +See the version control history or <\fBhttps://thanks.rust\-lang.org\fR> + +.SH "COPYRIGHT" +This work is dual\[hy]licensed under Apache\ 2.0 and MIT terms. +See \fICOPYRIGHT\fR file in the rust source distribution.