Comments (4)
@Peefy Iβve added some test cases to clarify the expected formatting behaviors on the issues raised above. ptal and verify the golden files. #786
And here are some ambiguities:
Do not format out user reserved blank lines
This statement is kind of ambiguous -- I believe this sentence is not referring to preserving all user-written blank lines (for example, typically only one blank line should be kept between statements, and there shouldn't be any blank lines between entries in list/dict/schema expressions).
Could you please clarify the specific cases when blank lines should be preserved?
The import statement and the following code are left blank on one line
Is this statement corresponding to the rule "Break one blank line between different statements e.g., import, schema and expression statements."? If so, I think this is exactly the same as another case to fix that you provide: "Leave additional line spacing between schema definitions and imports"
It would be helpful if you could provide some code examples (or you can directly add some file.input
and file.golden
).
from kcl.
cc @NeverRaR , @Peefy , @i-zhen
Here are some cases that the formatting behavior depends on the CST(which records the original token infos such as parenthesis, comments, whitespace and line breaks):
- empty lines between stmts should be formatted based on the user's line feed behavior: a. No empty lines between stmts should be kept as it is. b. multiple empty lines between stmts should be formatted to one empty line.
- whether to write line breaks between each entry in the list/dict/schema expr: a. no line breaks between entries should be kept as it is. b. line breaks between entries should be formatted to one line break.
(the code samples could be found in this issue's initial content)
and the tracking issue of the context of the (Lossless/Describing/Concrete) Syntax Tree
from kcl.
Hi @Peefy, could you please describe this requirement more detailed? I didn't get it precisely πΆβπ«οΈ
The import statement and the following code are left blank on one line
from kcl.
Related Impl: https://github.com/kcl-lang/tree-sitter-kcl
from kcl.
Related Issues (20)
- Option to not sort keys within a json object HOT 3
- [Bug] Importing Dynatrace Config schema ends abruptly without a complete schema HOT 3
- [Bug] Import of modules containing "-" fails HOT 7
- [feature] Support for type arguments for convenient factory functions HOT 3
- [Discussion] Issue with importing "-" packages either on the same level or nested. HOT 2
- Extend file module functions (for smoother GitOps) HOT 3
- kcl executable missing from github releases HOT 1
- [Enhancement] Proposal for new language feature for the short hand property HOT 1
- [Bug] Import JsonSchema: all props converted to snake case HOT 1
- [Enhancement] Create a Sublime Text file with language support
- [FAQ] Read a file and crossplane function kcl in kcl example HOT 5
- [bug] file mkdir and delete don't seem to work HOT 3
- YAML comments HOT 2
- [bug] lsp hover content error HOT 1
- [LFX PreTest] pretest for LFX LSP hover content HOT 6
- [Enhancement] Is there a way to read values from environment variables?
- [Bug] Compile Cache causes lsp falsely report errors
- System Functions disallow use of line wrapping (newlines around params)
- Support hyphen on attribute name HOT 1
- [Enhancement] Enhance error messages when importing an empty folder
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 kcl.