Comments (4)
I think a better approach would be to parse each comment using DocumentationComment
as soon as you can and traffic that type throughout, since it already handles that. That type extracts information about the comments into a structured representation. You'd need to add an API to construct a new swift-markdown Document
from those parts again, but that gives us more power to do things like enforce ordering of Parameter(s)
vs Returns
vs Throws
sections as part of the formatting operation, which we can't do if we just send the text directly through a reflowing pass.
from swift-format.
Synced to Apple’s issue tracker as rdar://128613075
from swift-format.
FWIW, my implementation is meant to match libMarkup in the Swift compiler as precisely as possible. If you put the first comment into Xcode and open up the doc popup, you'll see that the compiler parses it the same way (it has the brief summary, and then a bulleted list with one element):
/** start of my block comment,
* this will be a problem
*/
var x: Int
So the behavior of most of these is working as intended; we want to parse them exactly as the compiler would because changing the format of the comment from a doc block comment to a doc line comment should not alter how the Swift compiler would parse it structurally.
If you find any cases where swift-format's ASCII art extraction specifically works differently than the Swift compiler itself, then please report those; those would not be intentional.
from swift-format.
I see, that makes sense. I was a bit thrown off because some of the samples in CommentTests.swift
are formatted in these non-conforming ways. My plan was to use your implementation to get the raw text to send through the Markdown formatter; does this seem like the right way to go in your opinion?
from swift-format.
Related Issues (20)
- TrailingComma shows wrong line when AddLines present HOT 1
- `swift-format --recursive` recurses into `.build` HOT 2
- Adjust indentation when using multiple if-let expressions HOT 3
- Formatting results in duplicated top-level documentation HOT 2
- [Question] Can I strict the order of Closure annotation? HOT 1
- [Bugs?] `await` keyword mistake order when I use Swift-testing library. HOT 5
- Create a rule to add a specific format to file headers HOT 2
- Whitespace linting rules cannot be disabled HOT 9
- Error building swift-format in a Docker container HOT 6
- Typed throws in do blocks formatted incorrectly HOT 1
- Error building swift-format in a Docker container - Reopen HOT 3
- Ignoring a rule on a variable declaration doesn't work HOT 4
- `OrderedImports` sometimes moves import before file header HOT 4
- Rule for putting annotations into separate lines HOT 1
- AllPublicDeclarationsHaveDocumentation doesn't check enums, actors, or nested declarations HOT 1
- swift-format bug formatting nested #if #else #endif nodes in switch statement HOT 1
- Re-indenting multiline string literal with multiline tertiary expression fails HOT 2
- Existing line breaks between attributes are not removed respectsExistingLineBreaks == false HOT 1
- Support `.editorconfig` HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from swift-format.