Commit Graph

183 Commits

Author SHA1 Message Date
John Sundell e107609b00
MarkdownDecorator: Don’t hard code line breaks (#77)
This patch makes MarkdownDecorator not include line breaks before and
after the `<pre>` and `<code>` tags that it adds to code blocks, since
this will be rendered as whitespace in the browser.
2019-07-25 16:10:55 +02:00
John Sundell 5280f4abc7
Add support for the ‘convenience’ keyword (#76)
This patch makes Splash correctly highlight the ‘convenience’ keyword.
2019-07-21 13:44:11 +02:00
John Sundell 370f685cb1
Support types and functions named with a leading underscore (#74)
This patch fixes syntax highlighting for types and functions which names
begin with an underscore. Previously these entities would be treated as
plain text, but now they’re highlighted correctly as either types or
function calls.
2019-07-17 10:57:44 +02:00
John Sundell b1f77c9ff1
Fix highlighting for interpolated closure shorthand arguments (#75)
This patch fixes syntax highlighting for when shorthand closure
arguments ($0, $1…) are interpolated into a string literal. The
fix is to no longer treat “$” as a delimiter, which should help
solve similar issues that might be encountered in the future as
well.
2019-07-17 10:57:30 +02:00
John Sundell c582abf0a4
Add test verifying property wrapper compatibility (#73)
Splash was already capable of highlighting property wrappers, since
anything following an `@` symbol is treated as a keyword, but this
change adds a test that makes sure that it’ll keep working.
2019-06-18 13:37:57 +02:00
John Sundell 0b22fa3dcd
Fix highlighting for #available checks (#72)
This patch makes availability checks using `#available` highlight correctly,
by treating `#available` like a keyword.
2019-06-18 12:28:11 +02:00
John Sundell d978081933
Add support for Swift 5.1’s opaque return types (#71)
This change adds support for the Swift 5.1 `some` keyword, which is used
to declare opaque return types.
2019-06-09 12:33:00 +02:00
John Sundell 6fcb458c63
Enable Splash to be compiled for iOS as a Swift Package (#70)
While Splash has supported iOS since its early days, this change makes
it possible to compile the iOS version as a Swift Package, using Xcode 11.

The changes require us to not make the assumption that != macOS == Linux.

(Also git ignore the new `.swiftpm` directory that SwiftPM now uses)
2019-06-09 11:56:10 +02:00
John Sundell ec13df124a
Correctly highlight generic return types (#69)
This change makes Splash correctly highlight generics that are returned
from a function.
2019-05-13 11:25:16 +02:00
John Sundell 4675ffe963
Fix highlighting for inout closure arguments (#68)
This patch makes Splash correctly highlight the `inout` keyword when
it appears as part of a closure argument definition.
2019-05-13 11:19:15 +02:00
John Sundell 30d6cacb7c
Makefile: Support Swift 5 toolchain for installation (#67) 2019-04-14 22:17:58 +02:00
John Sundell d01f7a6b2f
Correctly highlight closure argument shorthands (#66)
This patch makes Splash correctly highlight closure argument
shorthands (`$0`, `$1`, etc.), while also making the logic for
detecting a function call a bit simpler.
2019-04-14 22:17:47 +02:00
John Sundell 2b9e65e0d8
Fix highlighting for keywords used as generic function parameter labels (#65)
This patch fixes highlighting for parameter labels that also match a
keyword, when used within a generic function declaration.
2019-03-31 22:52:09 +02:00
John Sundell c05038072a
Correctly highlight key paths passed as arguments (#64)
This makes Splash correctly highlight key paths that are passed as arguments
to a function, especially when there’s no external parameter label for that
argument.
2019-03-31 22:40:37 +02:00
John Sundell f9cb0db662
README: Update Swift version to 5.0 2019-03-26 12:19:07 +01:00
John Sundell 3aa1a6dc99
Update Swift version to 5.0 (#63)
Swift 5 is now officially released, so it’s time to adopt it! :)
2019-03-26 12:18:32 +01:00
John Sundell b9177c4104
Fix highlighting for nested escaping closures (#62)
This patch makes Splash correctly highlight nested closures marked with
the `@escaping` attribute. The fix is to start treating `@` like a proper
token, rather than as a delimiter.
2019-03-24 11:35:33 +01:00
John Sundell 72837ce7f0
Correctly highlight the root level of a key path (#60)
When key path literals are used, Splash will now correctly highlight the
root level of that key path as a property, rather than as plain text.
2019-03-16 12:44:02 +01:00
John Sundell 2cdc99ce60
Correctly highlight generic parameters (#59)
This patch makes Splash highlight generics that appear as part of a
generic function’s parameter list in a correct way.
2019-03-16 12:41:53 +01:00
Agisilaos Tsaraboulidis e3477a428e README: Bump up the number from 3 to 4 (#58)
With SplashMarkdown now there are 4 tools instead of 3
2019-03-15 20:58:35 +01:00
John Sundell cfb33cf3e5
Minor README updates
- Add clarification that Splash is used on Swift by Sundell.
- Update installation instructions to reference Swift 4.2.
- Use more even dependency version.
2019-03-15 20:52:46 +01:00
John Sundell 8e7599150f
Add SplashMarkdown (#57)
This change adds a new command line tool to the Splash family:
`SplashMarkdown`.

It’s an adapted version of the tool that I’ve been using for months to
publish every article on Swift by Sundell, and works by replacing all
code blocks within a Markdown file.

Adding this will hopefully make Splash even easier to use, without the
need for writing custom tooling, or to manually replace each code block
within a Markdown file with a “splashed” version.
2019-03-15 20:24:53 +01:00
Marco Capano 60c06cc385 Adding support for rethrows keyword (#56) 2019-03-12 23:12:54 +01:00
Apokrupto 9485a4e762 Fixed comments for keyword and preprocessing (#55) 2019-03-12 12:04:21 +01:00
John Sundell 43f163bebc
Add test verifying that custom string interpolation works (#54)
Swift 5 enables us to define custom ways to interpolate expressions into
strings, and Splash already successfully highlights that syntax, but let’s
add a test to make sure that continues to be the case.
2019-03-12 00:52:18 +01:00
John Sundell f1c56b342d
Add support for multi-line Swift 5 raw strings (#53)
This change extends the support for Swift 5 raw strings
to also cover multi-line literals.
2019-03-12 00:34:56 +01:00
John Sundell 6a75ec4491
Add support for Swift 5 single-line raw strings (#52)
This change makes Splash capable of highlighting Swift 5 raw strings,
although it’s currently limited to single line string literals. Support
for multi-line literals will be added in a future commit.
2019-03-12 00:21:25 +01:00
Marco Capano 9a7fdefab4 Adding nonmutating support (#50) 2019-03-11 21:31:32 +01:00
John Sundell 1a77051c67
README: Remove social networks I no longer use 2019-03-11 14:55:04 +01:00
John Sundell 8bc46cbeb0
Add SwiftLint (#49)
This change adds SwiftLint to the project. For now, the rules are tweaked
to match the current state of the code base — but will over time be changed
back to their defaults in several cases.

Some smaller changes (mostly related to code style) were applied to the
project to remove all warnings.
2019-03-11 14:52:46 +01:00
Marco Capano 892d6ae39c adding support for "dynamic" keyword (#48)
* adding support for "dynamic" keyword

* adding test for linux

* Fixing alignment issue
2019-03-11 13:57:33 +01:00
John Sundell f50a610849
Merge pull request #47 from JohnSundell/multi-line-comments
Improve support for multi-line comments
2019-03-11 11:35:33 +01:00
John Sundell 18dd016aa1 Improve support for multi-line comments
This change enables Splash to highlight multi-line comments that begin
with two asterisks, rather than just one. A test has also been added to
verify that documentation-style multi-line comments with an asterisk on
each line are also highlighted correctly.
2019-03-11 00:40:57 +01:00
John Sundell 73ffdd2e0c
Merge pull request #46 from JohnSundell/html-merging
HTMLOutputFormat: Merge same-type tokens along with whitespace
2019-03-10 21:50:00 +01:00
John Sundell 6dff287cd2 HTMLOutputFormat: Merge same-type tokens along with whitespace
This change makes Splash merge tokens of the same type (along with any
whitespace in between them) when generating HTML. The result is much
smaller HTML, since less tags have to be used to produce the same result.

This was most obvious with comment highlighting, for example, this comment:

```
// Hello I’m a comment
```

Would generate 5 different <span class="comment"></span> elements. Now
it’s just one!
2019-03-10 21:17:08 +01:00
John Sundell e4718f3053
Merge pull request #45 from JohnSundell/function-pre-processors
Support function argument pre-processors
2019-03-09 13:43:36 +01:00
John Sundell 74c3b8af27
Merge pull request #44 from JohnSundell/optional-pattern-matching
Support switch statements with nil pattern matching
2019-03-09 13:12:34 +01:00
John Sundell 59161f2724 Support function argument pre-processors
This change adds support for three pre-processors that can appear in
function delcarations: `#file`, `#line` and `#function`. They’re not
highlighted as pre-processors, but rather as keywords, to match the
way Xcode treats them.
2019-03-09 13:12:23 +01:00
John Sundell d74074f409 Support switch statements with nil pattern matching
This change adds support for highlighting `nil` when
it occurs inside of a `switch` statement’s `case`.
2019-03-09 13:02:33 +01:00
John Sundell c9425f5b60
Merge pull request #43 from JohnSundell/type-pattern-matching
Support ‘is’ keyword
2019-03-08 22:11:06 +01:00
John Sundell 88650438c8
Merge pull request #42 from JohnSundell/deinit
Support the deinit keyword
2019-03-08 22:04:19 +01:00
John Sundell d72e816cd8 Support ‘is’ keyword
This change makes Splash support the `is` keyword, for example in type
pattern matching in `switch` statements.
2019-03-08 22:04:10 +01:00
John Sundell 6536fe5400
Merge pull request #41 from JohnSundell/private-set
Support highlighting of setters with an explicit access level
2019-03-08 21:58:03 +01:00
John Sundell 45ca85e299 Support the deinit keyword
This patch makes Splash correctly highlight the `deinit` keyword.
2019-03-08 21:57:56 +01:00
John Sundell 9a01bb7b85
Merge pull request #40 from JohnSundell/xctassert
Add special case for `XCTAssert` family of functions
2019-03-08 21:53:12 +01:00
John Sundell c85d8d9d4d Support highlighting of setters with an explicit access level
This change makes Splash correctly highlight property setters that have
an explicit access level defined — such as `private(set) var`.
2019-03-08 21:50:07 +01:00
John Sundell 9fbdb92edb Add special case for `XCTAssert` family of functions
Normally, we don’t want Splash to contain too many special cases for
individual symbol names — but the `XCTAssert` family of functions are
so common that it warrants it. The problem is that Splash would currently
highlight those functions as types, since they are capitalized, which
has now been changed to function calls instead.
2019-03-08 19:14:18 +01:00
John Sundell fdc0e22d5f
Merge pull request #39 from JohnSundell/associatedtypes
Correctly highlight associated types
2019-03-08 18:58:16 +01:00
John Sundell f9ad32a0a6 Correctly highlight associated types
This patch makes Splash correctly highlight associated types within
protocol declarations. Like other declarations, typed declared using
the `associatedtype` keyword should not be highlighted.
2019-03-08 18:43:12 +01:00
John Sundell a7df9b171f
Merge pull request #38 from JohnSundell/bool-as-argument
Correctly highlight Bools passed as unnamed function arguments
2019-03-08 18:38:40 +01:00