biomejs / biome-zed

Biome extension for Zed
https://biomejs.dev
MIT License
169 stars 6 forks source link

Astro: When is enabled "fixAll.biome" option, after formatting is left only code from frontmatter #60

Open ynhhoJ opened 3 weeks ago

ynhhoJ commented 3 weeks ago
  1. settings.json
    
    "formatter": [
        {
            "language_server": {
                "name": "biome"
            }
        }
    ],
    "code_actions_on_format": {
        "source.fixAll.biome": true,
        "source.organizeImports.biome": true
    }
2. Open template file from Astro: https://github.com/withastro/astro/blob/main/examples/basics/src/components/Card.astro
3. In `Card.astro` (UPD: you can pick any `.astro` file, it happens everywhere) write `let test = 'some string'`. File should look like this:
```diff
---
interface Props {
    title: string;
    body: string;
    href: string;
}

const { href, title, body } = Astro.props;
+let test = 'some string'
---

<li class="link-card">
    <a href={href}>
        <h2>
            {title}
            <span>&rarr;</span>
        </h2>
        <p>
            {body}
        </p>
    </a>
</li>
<style>
    .link-card {
        list-style: none;
        display: flex;
        padding: 1px;
        background-color: #23262d;
        background-image: none;
        background-size: 400%;
        border-radius: 7px;
        background-position: 100%;
        transition: background-position 0.6s cubic-bezier(0.22, 1, 0.36, 1);
        box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.1);
    }
    .link-card > a {
        width: 100%;
        text-decoration: none;
        line-height: 1.4;
        padding: calc(1.5rem - 1px);
        border-radius: 8px;
        color: white;
        background-color: #23262d;
        opacity: 0.8;
    }
    h2 {
        margin: 0;
        font-size: 1.25rem;
        transition: color 0.6s cubic-bezier(0.22, 1, 0.36, 1);
    }
    p {
        margin-top: 0.5rem;
        margin-bottom: 0;
    }
    .link-card:is(:hover, :focus-within) {
        background-position: 0;
        background-image: var(--accent-gradient);
    }
    .link-card:is(:hover, :focus-within) h2 {
        color: rgb(var(--accent-light));
    }
</style>
  1. Save the file.
  2. After save, entire content will be removed, except of frontmatter code
    
    - ---
    interface Props {
    title: string;
    body: string;
    href: string;
    }

const { href, title, body } = Astro.props; +const test = "some string";


Biome Version: 1.9.4 Zed Version: 0.159.7 Plugin Version: 0.1.3

ynhhoJ commented 3 weeks ago

When I run manually bunx biome lint --fix, line: let test = 'some string' is correctly changed to const test = "some string";

P.S: biome.json:

{
    "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json",
    "vcs": {
        "enabled": false,
        "clientKind": "git",
        "useIgnoreFile": false
    },
    "files": {
        "ignoreUnknown": false,
        "ignore": []
    },
    "formatter": {
        "enabled": true,
        "indentStyle": "tab"
    },
    "organizeImports": {
        "enabled": true
    },
    "linter": {
        "enabled": true,
        "rules": {
            "recommended": true,
            "style": {
                "useConst": "error"
            }
        }
    },
    "javascript": {
        "formatter": {
            "quoteStyle": "double"
        }
    }
}