Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Behavior Change: All comments before firstImport are treated as top-of-file #82

Merged
merged 13 commits into from May 16, 2023

Conversation

fbartho
Copy link
Collaborator

@fbartho fbartho commented May 14, 2023

Fixes #81

  • This also reverts my alpha.4 behavior-change where top-of-file comments always got a newline injected below them. Now we neither inject nor delete 1 blank line below the last top-of-file-comment.
  • This reverts snapshot changes (around top-of-file blank-lines) as compared to our pre-4.0.0-alpha.4 behavior.

@fbartho fbartho requested a review from IanVS May 14, 2023 22:48
@fbartho fbartho changed the title Business logic change: All comments before firstImport are treated as top-of-file Behavior Change: All comments before firstImport are treated as top-of-file May 14, 2023
Base automatically changed from fb/fix-lost-trailing-specifier-comments to next May 15, 2023 04:46
fbartho and others added 4 commits May 15, 2023 12:29
Fixes #79

Trailing comments on specifiers don't get automatically saved like
top-level ones do. This ensures that such comments are not lost

Before:
```ts
import {
    b2,a2,
    // @ts-expect-error
} from "b";

import {
    b1,
    a1,

    // @ts-expect-error
} from "a";
```
After
```ts
import {
    a1,
    b1,
    // @ts-expect-error
} from "a";
import {
    a2,
    b2,
    // @ts-expect-error
} from "b";
```

---------

Co-authored-by: Ian VanSchooten <ian.vanschooten@gmail.com>
This treats the first node as the "winner", so that our
"currentOwnerIsFirstImport" logic works correctly for comments at top of files
@IanVS IanVS force-pushed the fb/protect-the-top-of-file branch from 99cceda to 73eec7b Compare May 15, 2023 17:23
…-file

# Conflicts:
#	src/utils/get-comment-registry.ts
Copy link
Owner

@IanVS IanVS left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I pushed some changes to allow us to preserve the spacing between comments at the tops of files (which I think is important). It got pretty tricky, but I think it's working now for the majority of cases.

I also had to add some logic to handle type+value import merging. Previously, we would start with values, and try merging types in. But if the first import at the top of the page is a type and it gets merged with a value, then we basically get rid of the first import, which was causing problems. I think the changes I made here should fix the behavior explained at the end of #54.

import { bar } from "a";
/* foo */ import { foo } from "c";
import { foo } from "c";
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This change doesn't look correct.

I think this makes the code a little easier to follow.

I wasn't able to add an end-to-end integration test around
"empty-statements-at-top-of-file" because you're right @IanVS, other
layers prevent that from happening.

Instead I added a unit-test to assert the fatal-errors that we throw.
@IanVS IanVS merged commit aabc923 into next May 16, 2023
6 checks passed
@IanVS IanVS deleted the fb/protect-the-top-of-file branch May 16, 2023 02:21
kodiakhq bot pushed a commit to timelessco/browser-js-library-template that referenced this pull request May 26, 2023
…#156)

[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@ianvs/prettier-plugin-sort-imports](https://togithub.com/ianvs/prettier-plugin-sort-imports) | [`^3.7.2` -> `^4.0.0`](https://renovatebot.com/diffs/npm/@ianvs%2fprettier-plugin-sort-imports/3.7.2/4.0.0) | [![age](https://badges.renovateapi.com/packages/npm/@ianvs%2fprettier-plugin-sort-imports/4.0.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/@ianvs%2fprettier-plugin-sort-imports/4.0.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/@ianvs%2fprettier-plugin-sort-imports/4.0.0/compatibility-slim/3.7.2)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/@ianvs%2fprettier-plugin-sort-imports/4.0.0/confidence-slim/3.7.2)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>ianvs/prettier-plugin-sort-imports</summary>

### [`v4.0.0`](https://togithub.com/IanVS/prettier-plugin-sort-imports/releases/tag/v4.0.0)

[Compare Source](https://togithub.com/ianvs/prettier-plugin-sort-imports/compare/v3.7.2...v4.0.0)

#### What's Changed

This new release focuses on simplifying the plugin options, shipping more useful defaults, handling comments around import statements more reliably, and improving Vue and TypeScript compatibility.  We also are targeting Node 16 syntax with our build, though older versions may continue to work (untested).  See the full [migration guide](https://togithub.com/IanVS/prettier-plugin-sort-imports/blob/next/docs/MIGRATION.md#migrating-from-v3xx-to-v4xx) for details of the breaking changes.

##### ⬆️ Breaking Changes

-   Build for Node 16+ ([IanVS/prettier-plugin-sort-imports#59)
-   Remove `importOrderBuiltinModulesToTop` (always true) ([IanVS/prettier-plugin-sort-imports#60)
-   Remove `importOrderSeparation` option ([IanVS/prettier-plugin-sort-imports#62)
-   Remove `importOrderCaseInsensitive` option ([IanVS/prettier-plugin-sort-imports#63)
-   Remove `importOrderGroupNamespaceSpecifiers` option ([IanVS/prettier-plugin-sort-imports#64)
-   Remove `importOrderSortSpecifiers` option ([IanVS/prettier-plugin-sort-imports#65)
-   Remove `importOrderMergeDuplicateImports` option (always on) ([IanVS/prettier-plugin-sort-imports#66)
-   Replace `importOrderCombineTypeAndValueImports` with `importOrderTypeScriptVersion` ([IanVS/prettier-plugin-sort-imports#67)
-   Improve default sort order ([IanVS/prettier-plugin-sort-imports#83)

##### 🐛 Bug Fixes

-   Fix behavior around comments embedded in imports ([IanVS/prettier-plugin-sort-imports#71)
-   Preserve trailing comments on specifiers ([IanVS/prettier-plugin-sort-imports#80)
-   Preserve comments and blank lines at top-of-file (in [IanVS/prettier-plugin-sort-imports#82)
-   Prevent comment gap when re-arranging first import ([IanVS/prettier-plugin-sort-imports#85)
-   Fix: Top-of-file Comments get duplicated when moving runtime code ([IanVS/prettier-plugin-sort-imports#88)
-   Vue: Sort both script and setup script ([IanVS/prettier-plugin-sort-imports#90)
-   Vue and TypeScript: Use correct parser plugins ([IanVS/prettier-plugin-sort-imports#91)

##### ⚡️ Features

-   Add `<BUILTIN_MODULES>` Special Word ([IanVS/prettier-plugin-sort-imports#86)
-   Allow Explicit Separator after Top-of-file-comments ([IanVS/prettier-plugin-sort-imports#92)
-   Support babel-ts parser ([IanVS/prettier-plugin-sort-imports#97)

##### 🛠️ Repo Maintenance

-   Update dependencies, jest -> vitest ([IanVS/prettier-plugin-sort-imports#59)
-   Check formatting in CI ([IanVS/prettier-plugin-sort-imports#61)
-   Update to latest versions of Github Actions ([IanVS/prettier-plugin-sort-imports#73)
-   Add some more tests for comments ([IanVS/prettier-plugin-sort-imports#77)

##### 🧳 Dependencies

-   Drop javascript-natural-sort dependency ([IanVS/prettier-plugin-sort-imports#28)
-   Drop lodash.clone dependency ([IanVS/prettier-plugin-sort-imports#74)
-   Upgrade Babel to 7.21 ([IanVS/prettier-plugin-sort-imports#72)

**Full Changelog**: IanVS/prettier-plugin-sort-imports@v3.7.2...v4.0.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 12am and before 5am every weekday,every weekend" in timezone Asia/Kolkata, Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/timelessco/browser-js-library-template).
kodiakhq bot pushed a commit to timelessco/browser-js-website-template that referenced this pull request May 26, 2023
…#109)

[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@ianvs/prettier-plugin-sort-imports](https://togithub.com/ianvs/prettier-plugin-sort-imports) | [`^3.7.2` -> `^4.0.0`](https://renovatebot.com/diffs/npm/@ianvs%2fprettier-plugin-sort-imports/3.7.2/4.0.0) | [![age](https://badges.renovateapi.com/packages/npm/@ianvs%2fprettier-plugin-sort-imports/4.0.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/@ianvs%2fprettier-plugin-sort-imports/4.0.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/@ianvs%2fprettier-plugin-sort-imports/4.0.0/compatibility-slim/3.7.2)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/@ianvs%2fprettier-plugin-sort-imports/4.0.0/confidence-slim/3.7.2)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>ianvs/prettier-plugin-sort-imports</summary>

### [`v4.0.0`](https://togithub.com/IanVS/prettier-plugin-sort-imports/releases/tag/v4.0.0)

[Compare Source](https://togithub.com/ianvs/prettier-plugin-sort-imports/compare/v3.7.2...v4.0.0)

#### What's Changed

This new release focuses on simplifying the plugin options, shipping more useful defaults, handling comments around import statements more reliably, and improving Vue and TypeScript compatibility.  We also are targeting Node 16 syntax with our build, though older versions may continue to work (untested).  See the full [migration guide](https://togithub.com/IanVS/prettier-plugin-sort-imports/blob/next/docs/MIGRATION.md#migrating-from-v3xx-to-v4xx) for details of the breaking changes.

##### ⬆️ Breaking Changes

-   Build for Node 16+ ([IanVS/prettier-plugin-sort-imports#59)
-   Remove `importOrderBuiltinModulesToTop` (always true) ([IanVS/prettier-plugin-sort-imports#60)
-   Remove `importOrderSeparation` option ([IanVS/prettier-plugin-sort-imports#62)
-   Remove `importOrderCaseInsensitive` option ([IanVS/prettier-plugin-sort-imports#63)
-   Remove `importOrderGroupNamespaceSpecifiers` option ([IanVS/prettier-plugin-sort-imports#64)
-   Remove `importOrderSortSpecifiers` option ([IanVS/prettier-plugin-sort-imports#65)
-   Remove `importOrderMergeDuplicateImports` option (always on) ([IanVS/prettier-plugin-sort-imports#66)
-   Replace `importOrderCombineTypeAndValueImports` with `importOrderTypeScriptVersion` ([IanVS/prettier-plugin-sort-imports#67)
-   Improve default sort order ([IanVS/prettier-plugin-sort-imports#83)

##### 🐛 Bug Fixes

-   Fix behavior around comments embedded in imports ([IanVS/prettier-plugin-sort-imports#71)
-   Preserve trailing comments on specifiers ([IanVS/prettier-plugin-sort-imports#80)
-   Preserve comments and blank lines at top-of-file (in [IanVS/prettier-plugin-sort-imports#82)
-   Prevent comment gap when re-arranging first import ([IanVS/prettier-plugin-sort-imports#85)
-   Fix: Top-of-file Comments get duplicated when moving runtime code ([IanVS/prettier-plugin-sort-imports#88)
-   Vue: Sort both script and setup script ([IanVS/prettier-plugin-sort-imports#90)
-   Vue and TypeScript: Use correct parser plugins ([IanVS/prettier-plugin-sort-imports#91)

##### ⚡️ Features

-   Add `<BUILTIN_MODULES>` Special Word ([IanVS/prettier-plugin-sort-imports#86)
-   Allow Explicit Separator after Top-of-file-comments ([IanVS/prettier-plugin-sort-imports#92)
-   Support babel-ts parser ([IanVS/prettier-plugin-sort-imports#97)

##### 🛠️ Repo Maintenance

-   Update dependencies, jest -> vitest ([IanVS/prettier-plugin-sort-imports#59)
-   Check formatting in CI ([IanVS/prettier-plugin-sort-imports#61)
-   Update to latest versions of Github Actions ([IanVS/prettier-plugin-sort-imports#73)
-   Add some more tests for comments ([IanVS/prettier-plugin-sort-imports#77)

##### 🧳 Dependencies

-   Drop javascript-natural-sort dependency ([IanVS/prettier-plugin-sort-imports#28)
-   Drop lodash.clone dependency ([IanVS/prettier-plugin-sort-imports#74)
-   Upgrade Babel to 7.21 ([IanVS/prettier-plugin-sort-imports#72)

**Full Changelog**: IanVS/prettier-plugin-sort-imports@v3.7.2...v4.0.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 12am and before 5am every weekday,every weekend" in timezone Asia/Kolkata, Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/timelessco/browser-js-website-template).
kodiakhq bot pushed a commit to timelessco/js-bottomsheet that referenced this pull request May 26, 2023
…#122)

[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@ianvs/prettier-plugin-sort-imports](https://togithub.com/ianvs/prettier-plugin-sort-imports) | [`^3.7.2` -> `^4.0.0`](https://renovatebot.com/diffs/npm/@ianvs%2fprettier-plugin-sort-imports/3.7.2/4.0.0) | [![age](https://badges.renovateapi.com/packages/npm/@ianvs%2fprettier-plugin-sort-imports/4.0.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/@ianvs%2fprettier-plugin-sort-imports/4.0.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/@ianvs%2fprettier-plugin-sort-imports/4.0.0/compatibility-slim/3.7.2)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/@ianvs%2fprettier-plugin-sort-imports/4.0.0/confidence-slim/3.7.2)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>ianvs/prettier-plugin-sort-imports</summary>

### [`v4.0.0`](https://togithub.com/IanVS/prettier-plugin-sort-imports/releases/tag/v4.0.0)

[Compare Source](https://togithub.com/ianvs/prettier-plugin-sort-imports/compare/v3.7.2...v4.0.0)

#### What's Changed

This new release focuses on simplifying the plugin options, shipping more useful defaults, handling comments around import statements more reliably, and improving Vue and TypeScript compatibility.  We also are targeting Node 16 syntax with our build, though older versions may continue to work (untested).  See the full [migration guide](https://togithub.com/IanVS/prettier-plugin-sort-imports/blob/next/docs/MIGRATION.md#migrating-from-v3xx-to-v4xx) for details of the breaking changes.

##### ⬆️ Breaking Changes

-   Build for Node 16+ ([IanVS/prettier-plugin-sort-imports#59)
-   Remove `importOrderBuiltinModulesToTop` (always true) ([IanVS/prettier-plugin-sort-imports#60)
-   Remove `importOrderSeparation` option ([IanVS/prettier-plugin-sort-imports#62)
-   Remove `importOrderCaseInsensitive` option ([IanVS/prettier-plugin-sort-imports#63)
-   Remove `importOrderGroupNamespaceSpecifiers` option ([IanVS/prettier-plugin-sort-imports#64)
-   Remove `importOrderSortSpecifiers` option ([IanVS/prettier-plugin-sort-imports#65)
-   Remove `importOrderMergeDuplicateImports` option (always on) ([IanVS/prettier-plugin-sort-imports#66)
-   Replace `importOrderCombineTypeAndValueImports` with `importOrderTypeScriptVersion` ([IanVS/prettier-plugin-sort-imports#67)
-   Improve default sort order ([IanVS/prettier-plugin-sort-imports#83)

##### 🐛 Bug Fixes

-   Fix behavior around comments embedded in imports ([IanVS/prettier-plugin-sort-imports#71)
-   Preserve trailing comments on specifiers ([IanVS/prettier-plugin-sort-imports#80)
-   Preserve comments and blank lines at top-of-file (in [IanVS/prettier-plugin-sort-imports#82)
-   Prevent comment gap when re-arranging first import ([IanVS/prettier-plugin-sort-imports#85)
-   Fix: Top-of-file Comments get duplicated when moving runtime code ([IanVS/prettier-plugin-sort-imports#88)
-   Vue: Sort both script and setup script ([IanVS/prettier-plugin-sort-imports#90)
-   Vue and TypeScript: Use correct parser plugins ([IanVS/prettier-plugin-sort-imports#91)

##### ⚡️ Features

-   Add `<BUILTIN_MODULES>` Special Word ([IanVS/prettier-plugin-sort-imports#86)
-   Allow Explicit Separator after Top-of-file-comments ([IanVS/prettier-plugin-sort-imports#92)
-   Support babel-ts parser ([IanVS/prettier-plugin-sort-imports#97)

##### 🛠️ Repo Maintenance

-   Update dependencies, jest -> vitest ([IanVS/prettier-plugin-sort-imports#59)
-   Check formatting in CI ([IanVS/prettier-plugin-sort-imports#61)
-   Update to latest versions of Github Actions ([IanVS/prettier-plugin-sort-imports#73)
-   Add some more tests for comments ([IanVS/prettier-plugin-sort-imports#77)

##### 🧳 Dependencies

-   Drop javascript-natural-sort dependency ([IanVS/prettier-plugin-sort-imports#28)
-   Drop lodash.clone dependency ([IanVS/prettier-plugin-sort-imports#74)
-   Upgrade Babel to 7.21 ([IanVS/prettier-plugin-sort-imports#72)

**Full Changelog**: IanVS/prettier-plugin-sort-imports@v3.7.2...v4.0.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 12am and before 5am every weekday,every weekend" in timezone Asia/Kolkata, Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/timelessco/js-bottomsheet).
kodiakhq bot pushed a commit to timelessco/node-ts-library-template that referenced this pull request May 26, 2023
…#79)

[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@ianvs/prettier-plugin-sort-imports](https://togithub.com/ianvs/prettier-plugin-sort-imports) | [`3.7.2` -> `4.0.0`](https://renovatebot.com/diffs/npm/@ianvs%2fprettier-plugin-sort-imports/3.7.2/4.0.0) | [![age](https://badges.renovateapi.com/packages/npm/@ianvs%2fprettier-plugin-sort-imports/4.0.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/@ianvs%2fprettier-plugin-sort-imports/4.0.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/@ianvs%2fprettier-plugin-sort-imports/4.0.0/compatibility-slim/3.7.2)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/@ianvs%2fprettier-plugin-sort-imports/4.0.0/confidence-slim/3.7.2)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>ianvs/prettier-plugin-sort-imports</summary>

### [`v4.0.0`](https://togithub.com/IanVS/prettier-plugin-sort-imports/releases/tag/v4.0.0)

[Compare Source](https://togithub.com/ianvs/prettier-plugin-sort-imports/compare/v3.7.2...v4.0.0)

#### What's Changed

This new release focuses on simplifying the plugin options, shipping more useful defaults, handling comments around import statements more reliably, and improving Vue and TypeScript compatibility.  We also are targeting Node 16 syntax with our build, though older versions may continue to work (untested).  See the full [migration guide](https://togithub.com/IanVS/prettier-plugin-sort-imports/blob/next/docs/MIGRATION.md#migrating-from-v3xx-to-v4xx) for details of the breaking changes.

##### ⬆️ Breaking Changes

-   Build for Node 16+ ([IanVS/prettier-plugin-sort-imports#59)
-   Remove `importOrderBuiltinModulesToTop` (always true) ([IanVS/prettier-plugin-sort-imports#60)
-   Remove `importOrderSeparation` option ([IanVS/prettier-plugin-sort-imports#62)
-   Remove `importOrderCaseInsensitive` option ([IanVS/prettier-plugin-sort-imports#63)
-   Remove `importOrderGroupNamespaceSpecifiers` option ([IanVS/prettier-plugin-sort-imports#64)
-   Remove `importOrderSortSpecifiers` option ([IanVS/prettier-plugin-sort-imports#65)
-   Remove `importOrderMergeDuplicateImports` option (always on) ([IanVS/prettier-plugin-sort-imports#66)
-   Replace `importOrderCombineTypeAndValueImports` with `importOrderTypeScriptVersion` ([IanVS/prettier-plugin-sort-imports#67)
-   Improve default sort order ([IanVS/prettier-plugin-sort-imports#83)

##### 🐛 Bug Fixes

-   Fix behavior around comments embedded in imports ([IanVS/prettier-plugin-sort-imports#71)
-   Preserve trailing comments on specifiers ([IanVS/prettier-plugin-sort-imports#80)
-   Preserve comments and blank lines at top-of-file (in [IanVS/prettier-plugin-sort-imports#82)
-   Prevent comment gap when re-arranging first import ([IanVS/prettier-plugin-sort-imports#85)
-   Fix: Top-of-file Comments get duplicated when moving runtime code ([IanVS/prettier-plugin-sort-imports#88)
-   Vue: Sort both script and setup script ([IanVS/prettier-plugin-sort-imports#90)
-   Vue and TypeScript: Use correct parser plugins ([IanVS/prettier-plugin-sort-imports#91)

##### ⚡️ Features

-   Add `<BUILTIN_MODULES>` Special Word ([IanVS/prettier-plugin-sort-imports#86)
-   Allow Explicit Separator after Top-of-file-comments ([IanVS/prettier-plugin-sort-imports#92)
-   Support babel-ts parser ([IanVS/prettier-plugin-sort-imports#97)

##### 🛠️ Repo Maintenance

-   Update dependencies, jest -> vitest ([IanVS/prettier-plugin-sort-imports#59)
-   Check formatting in CI ([IanVS/prettier-plugin-sort-imports#61)
-   Update to latest versions of Github Actions ([IanVS/prettier-plugin-sort-imports#73)
-   Add some more tests for comments ([IanVS/prettier-plugin-sort-imports#77)

##### 🧳 Dependencies

-   Drop javascript-natural-sort dependency ([IanVS/prettier-plugin-sort-imports#28)
-   Drop lodash.clone dependency ([IanVS/prettier-plugin-sort-imports#74)
-   Upgrade Babel to 7.21 ([IanVS/prettier-plugin-sort-imports#72)

**Full Changelog**: IanVS/prettier-plugin-sort-imports@v3.7.2...v4.0.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 12am and before 5am on saturday" in timezone Asia/Kolkata, Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/timelessco/node-ts-library-template).
kodiakhq bot pushed a commit to timelessco/node-js-library-template that referenced this pull request Jun 2, 2023
…#71)

[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@ianvs/prettier-plugin-sort-imports](https://togithub.com/ianvs/prettier-plugin-sort-imports) | [`3.7.2` -> `4.0.2`](https://renovatebot.com/diffs/npm/@ianvs%2fprettier-plugin-sort-imports/3.7.2/4.0.2) | [![age](https://badges.renovateapi.com/packages/npm/@ianvs%2fprettier-plugin-sort-imports/4.0.2/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/@ianvs%2fprettier-plugin-sort-imports/4.0.2/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/@ianvs%2fprettier-plugin-sort-imports/4.0.2/compatibility-slim/3.7.2)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/@ianvs%2fprettier-plugin-sort-imports/4.0.2/confidence-slim/3.7.2)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>ianvs/prettier-plugin-sort-imports</summary>

### [`v4.0.2`](https://togithub.com/IanVS/prettier-plugin-sort-imports/releases/tag/v4.0.2)

[Compare Source](https://togithub.com/ianvs/prettier-plugin-sort-imports/compare/v4.0.1...v4.0.2)

#### What's Changed

-   Account for missing filepath by [@&#8203;IanVS](https://togithub.com/IanVS) in [IanVS/prettier-plugin-sort-imports#104

**Full Changelog**: IanVS/prettier-plugin-sort-imports@v4.0.1...v4.0.2

### [`v4.0.1`](https://togithub.com/IanVS/prettier-plugin-sort-imports/releases/tag/v4.0.1)

[Compare Source](https://togithub.com/ianvs/prettier-plugin-sort-imports/compare/v4.0.0...v4.0.1)

#### What's Changed

-   Fix cli in Install section by [@&#8203;torn4dom4n](https://togithub.com/torn4dom4n) in [IanVS/prettier-plugin-sort-imports#99
-   Fix dollar sign ($) issue in Vue SFC by [@&#8203;istiak-tridip](https://togithub.com/istiak-tridip) in [IanVS/prettier-plugin-sort-imports#101

#### New Contributors

-   [@&#8203;torn4dom4n](https://togithub.com/torn4dom4n) made their first contribution in [IanVS/prettier-plugin-sort-imports#99
-   [@&#8203;istiak-tridip](https://togithub.com/istiak-tridip) made their first contribution in [IanVS/prettier-plugin-sort-imports#101

**Full Changelog**: IanVS/prettier-plugin-sort-imports@v4.0.0...v4.0.1

### [`v4.0.0`](https://togithub.com/IanVS/prettier-plugin-sort-imports/releases/tag/v4.0.0)

[Compare Source](https://togithub.com/ianvs/prettier-plugin-sort-imports/compare/v3.7.2...v4.0.0)

#### What's Changed

This new release focuses on simplifying the plugin options, shipping more useful defaults, handling comments around import statements more reliably, and improving Vue and TypeScript compatibility.  We also are targeting Node 16 syntax with our build, though older versions may continue to work (untested).  See the full [migration guide](https://togithub.com/IanVS/prettier-plugin-sort-imports/blob/next/docs/MIGRATION.md#migrating-from-v3xx-to-v4xx) for details of the breaking changes.

##### ⬆️ Breaking Changes

-   Build for Node 16+ ([IanVS/prettier-plugin-sort-imports#59)
-   Remove `importOrderBuiltinModulesToTop` (always true) ([IanVS/prettier-plugin-sort-imports#60)
-   Remove `importOrderSeparation` option ([IanVS/prettier-plugin-sort-imports#62)
-   Remove `importOrderCaseInsensitive` option ([IanVS/prettier-plugin-sort-imports#63)
-   Remove `importOrderGroupNamespaceSpecifiers` option ([IanVS/prettier-plugin-sort-imports#64)
-   Remove `importOrderSortSpecifiers` option ([IanVS/prettier-plugin-sort-imports#65)
-   Remove `importOrderMergeDuplicateImports` option (always on) ([IanVS/prettier-plugin-sort-imports#66)
-   Replace `importOrderCombineTypeAndValueImports` with `importOrderTypeScriptVersion` ([IanVS/prettier-plugin-sort-imports#67)
-   Improve default sort order ([IanVS/prettier-plugin-sort-imports#83)

##### 🐛 Bug Fixes

-   Fix behavior around comments embedded in imports ([IanVS/prettier-plugin-sort-imports#71)
-   Preserve trailing comments on specifiers ([IanVS/prettier-plugin-sort-imports#80)
-   Preserve comments and blank lines at top-of-file (in [IanVS/prettier-plugin-sort-imports#82)
-   Prevent comment gap when re-arranging first import ([IanVS/prettier-plugin-sort-imports#85)
-   Fix: Top-of-file Comments get duplicated when moving runtime code ([IanVS/prettier-plugin-sort-imports#88)
-   Vue: Sort both script and setup script ([IanVS/prettier-plugin-sort-imports#90)
-   Vue and TypeScript: Use correct parser plugins ([IanVS/prettier-plugin-sort-imports#91)

##### ⚡️ Features

-   Add `<BUILTIN_MODULES>` Special Word ([IanVS/prettier-plugin-sort-imports#86)
-   Allow Explicit Separator after Top-of-file-comments ([IanVS/prettier-plugin-sort-imports#92)
-   Support babel-ts parser ([IanVS/prettier-plugin-sort-imports#97)

##### 🛠️ Repo Maintenance

-   Update dependencies, jest -> vitest ([IanVS/prettier-plugin-sort-imports#59)
-   Check formatting in CI ([IanVS/prettier-plugin-sort-imports#61)
-   Update to latest versions of Github Actions ([IanVS/prettier-plugin-sort-imports#73)
-   Add some more tests for comments ([IanVS/prettier-plugin-sort-imports#77)

##### 🧳 Dependencies

-   Drop javascript-natural-sort dependency ([IanVS/prettier-plugin-sort-imports#28)
-   Drop lodash.clone dependency ([IanVS/prettier-plugin-sort-imports#74)
-   Upgrade Babel to 7.21 ([IanVS/prettier-plugin-sort-imports#72)

**Full Changelog**: IanVS/prettier-plugin-sort-imports@v3.7.2...v4.0.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 12am and before 5am on saturday" in timezone Asia/Kolkata, Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/timelessco/node-js-library-template).
kodiakhq bot pushed a commit to timelessco/recollect that referenced this pull request Jun 4, 2023
…#36)

[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@ianvs/prettier-plugin-sort-imports](https://togithub.com/ianvs/prettier-plugin-sort-imports) | [`3.7.2` -> `4.0.2`](https://renovatebot.com/diffs/npm/@ianvs%2fprettier-plugin-sort-imports/3.7.2/4.0.2) | [![age](https://badges.renovateapi.com/packages/npm/@ianvs%2fprettier-plugin-sort-imports/4.0.2/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/@ianvs%2fprettier-plugin-sort-imports/4.0.2/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/@ianvs%2fprettier-plugin-sort-imports/4.0.2/compatibility-slim/3.7.2)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/@ianvs%2fprettier-plugin-sort-imports/4.0.2/confidence-slim/3.7.2)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>ianvs/prettier-plugin-sort-imports</summary>

### [`v4.0.2`](https://togithub.com/IanVS/prettier-plugin-sort-imports/releases/tag/v4.0.2)

[Compare Source](https://togithub.com/ianvs/prettier-plugin-sort-imports/compare/v4.0.1...v4.0.2)

#### What's Changed

-   Account for missing filepath by [@&#8203;IanVS](https://togithub.com/IanVS) in [IanVS/prettier-plugin-sort-imports#104

**Full Changelog**: IanVS/prettier-plugin-sort-imports@v4.0.1...v4.0.2

### [`v4.0.1`](https://togithub.com/IanVS/prettier-plugin-sort-imports/releases/tag/v4.0.1)

[Compare Source](https://togithub.com/ianvs/prettier-plugin-sort-imports/compare/v4.0.0...v4.0.1)

#### What's Changed

-   Fix cli in Install section by [@&#8203;torn4dom4n](https://togithub.com/torn4dom4n) in [IanVS/prettier-plugin-sort-imports#99
-   Fix dollar sign ($) issue in Vue SFC by [@&#8203;istiak-tridip](https://togithub.com/istiak-tridip) in [IanVS/prettier-plugin-sort-imports#101

#### New Contributors

-   [@&#8203;torn4dom4n](https://togithub.com/torn4dom4n) made their first contribution in [IanVS/prettier-plugin-sort-imports#99
-   [@&#8203;istiak-tridip](https://togithub.com/istiak-tridip) made their first contribution in [IanVS/prettier-plugin-sort-imports#101

**Full Changelog**: IanVS/prettier-plugin-sort-imports@v4.0.0...v4.0.1

### [`v4.0.0`](https://togithub.com/IanVS/prettier-plugin-sort-imports/releases/tag/v4.0.0)

[Compare Source](https://togithub.com/ianvs/prettier-plugin-sort-imports/compare/v3.7.2...v4.0.0)

##### What's Changed

This new release focuses on simplifying the plugin options, shipping more useful defaults, handling comments around import statements more reliably, and improving Vue and TypeScript compatibility.  We also are targeting Node 16 syntax with our build, though older versions may continue to work (untested).  See the full [migration guide](https://togithub.com/IanVS/prettier-plugin-sort-imports/blob/next/docs/MIGRATION.md#migrating-from-v3xx-to-v4xx) for details of the breaking changes.

##### ⬆️ Breaking Changes

-   Build for Node 16+ ([IanVS/prettier-plugin-sort-imports#59)
-   Remove `importOrderBuiltinModulesToTop` (always true) ([IanVS/prettier-plugin-sort-imports#60)
-   Remove `importOrderSeparation` option ([IanVS/prettier-plugin-sort-imports#62)
-   Remove `importOrderCaseInsensitive` option ([IanVS/prettier-plugin-sort-imports#63)
-   Remove `importOrderGroupNamespaceSpecifiers` option ([IanVS/prettier-plugin-sort-imports#64)
-   Remove `importOrderSortSpecifiers` option ([IanVS/prettier-plugin-sort-imports#65)
-   Remove `importOrderMergeDuplicateImports` option (always on) ([IanVS/prettier-plugin-sort-imports#66)
-   Replace `importOrderCombineTypeAndValueImports` with `importOrderTypeScriptVersion` ([IanVS/prettier-plugin-sort-imports#67)
-   Improve default sort order ([IanVS/prettier-plugin-sort-imports#83)

##### 🐛 Bug Fixes

-   Fix behavior around comments embedded in imports ([IanVS/prettier-plugin-sort-imports#71)
-   Preserve trailing comments on specifiers ([IanVS/prettier-plugin-sort-imports#80)
-   Preserve comments and blank lines at top-of-file (in [IanVS/prettier-plugin-sort-imports#82)
-   Prevent comment gap when re-arranging first import ([IanVS/prettier-plugin-sort-imports#85)
-   Fix: Top-of-file Comments get duplicated when moving runtime code ([IanVS/prettier-plugin-sort-imports#88)
-   Vue: Sort both script and setup script ([IanVS/prettier-plugin-sort-imports#90)
-   Vue and TypeScript: Use correct parser plugins ([IanVS/prettier-plugin-sort-imports#91)

##### ⚡️ Features

-   Add `<BUILTIN_MODULES>` Special Word ([IanVS/prettier-plugin-sort-imports#86)
-   Allow Explicit Separator after Top-of-file-comments ([IanVS/prettier-plugin-sort-imports#92)
-   Support babel-ts parser ([IanVS/prettier-plugin-sort-imports#97)

##### 🛠️ Repo Maintenance

-   Update dependencies, jest -> vitest ([IanVS/prettier-plugin-sort-imports#59)
-   Check formatting in CI ([IanVS/prettier-plugin-sort-imports#61)
-   Update to latest versions of Github Actions ([IanVS/prettier-plugin-sort-imports#73)
-   Add some more tests for comments ([IanVS/prettier-plugin-sort-imports#77)

##### 🧳 Dependencies

-   Drop javascript-natural-sort dependency ([IanVS/prettier-plugin-sort-imports#28)
-   Drop lodash.clone dependency ([IanVS/prettier-plugin-sort-imports#74)
-   Upgrade Babel to 7.21 ([IanVS/prettier-plugin-sort-imports#72)

**Full Changelog**: IanVS/prettier-plugin-sort-imports@v3.7.2...v4.0.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 4am on Monday" in timezone Asia/Kolkata, Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/timelessco/bookmark-tags).
kodiakhq bot pushed a commit to timelessco/next-ts-app that referenced this pull request Jun 11, 2023
…#161)

[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@ianvs/prettier-plugin-sort-imports](https://togithub.com/ianvs/prettier-plugin-sort-imports) | [`3.7.2` -> `4.0.2`](https://renovatebot.com/diffs/npm/@ianvs%2fprettier-plugin-sort-imports/3.7.2/4.0.2) | [![age](https://badges.renovateapi.com/packages/npm/@ianvs%2fprettier-plugin-sort-imports/4.0.2/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/@ianvs%2fprettier-plugin-sort-imports/4.0.2/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/@ianvs%2fprettier-plugin-sort-imports/4.0.2/compatibility-slim/3.7.2)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/@ianvs%2fprettier-plugin-sort-imports/4.0.2/confidence-slim/3.7.2)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>ianvs/prettier-plugin-sort-imports</summary>

### [`v4.0.2`](https://togithub.com/IanVS/prettier-plugin-sort-imports/releases/tag/v4.0.2)

[Compare Source](https://togithub.com/ianvs/prettier-plugin-sort-imports/compare/v4.0.1...v4.0.2)

#### What's Changed

-   Account for missing filepath by [@&#8203;IanVS](https://togithub.com/IanVS) in [IanVS/prettier-plugin-sort-imports#104

**Full Changelog**: IanVS/prettier-plugin-sort-imports@v4.0.1...v4.0.2

### [`v4.0.1`](https://togithub.com/IanVS/prettier-plugin-sort-imports/releases/tag/v4.0.1)

[Compare Source](https://togithub.com/ianvs/prettier-plugin-sort-imports/compare/v4.0.0...v4.0.1)

#### What's Changed

-   Fix cli in Install section by [@&#8203;torn4dom4n](https://togithub.com/torn4dom4n) in [IanVS/prettier-plugin-sort-imports#99
-   Fix dollar sign ($) issue in Vue SFC by [@&#8203;istiak-tridip](https://togithub.com/istiak-tridip) in [IanVS/prettier-plugin-sort-imports#101

#### New Contributors

-   [@&#8203;torn4dom4n](https://togithub.com/torn4dom4n) made their first contribution in [IanVS/prettier-plugin-sort-imports#99
-   [@&#8203;istiak-tridip](https://togithub.com/istiak-tridip) made their first contribution in [IanVS/prettier-plugin-sort-imports#101

**Full Changelog**: IanVS/prettier-plugin-sort-imports@v4.0.0...v4.0.1

### [`v4.0.0`](https://togithub.com/IanVS/prettier-plugin-sort-imports/releases/tag/v4.0.0)

[Compare Source](https://togithub.com/ianvs/prettier-plugin-sort-imports/compare/v3.7.2...v4.0.0)

#### What's Changed

This new release focuses on simplifying the plugin options, shipping more useful defaults, handling comments around import statements more reliably, and improving Vue and TypeScript compatibility.  We also are targeting Node 16 syntax with our build, though older versions may continue to work (untested).  See the full [migration guide](https://togithub.com/IanVS/prettier-plugin-sort-imports/blob/next/docs/MIGRATION.md#migrating-from-v3xx-to-v4xx) for details of the breaking changes.

##### ⬆️ Breaking Changes

-   Build for Node 16+ ([IanVS/prettier-plugin-sort-imports#59)
-   Remove `importOrderBuiltinModulesToTop` (always true) ([IanVS/prettier-plugin-sort-imports#60)
-   Remove `importOrderSeparation` option ([IanVS/prettier-plugin-sort-imports#62)
-   Remove `importOrderCaseInsensitive` option ([IanVS/prettier-plugin-sort-imports#63)
-   Remove `importOrderGroupNamespaceSpecifiers` option ([IanVS/prettier-plugin-sort-imports#64)
-   Remove `importOrderSortSpecifiers` option ([IanVS/prettier-plugin-sort-imports#65)
-   Remove `importOrderMergeDuplicateImports` option (always on) ([IanVS/prettier-plugin-sort-imports#66)
-   Replace `importOrderCombineTypeAndValueImports` with `importOrderTypeScriptVersion` ([IanVS/prettier-plugin-sort-imports#67)
-   Improve default sort order ([IanVS/prettier-plugin-sort-imports#83)

##### 🐛 Bug Fixes

-   Fix behavior around comments embedded in imports ([IanVS/prettier-plugin-sort-imports#71)
-   Preserve trailing comments on specifiers ([IanVS/prettier-plugin-sort-imports#80)
-   Preserve comments and blank lines at top-of-file (in [IanVS/prettier-plugin-sort-imports#82)
-   Prevent comment gap when re-arranging first import ([IanVS/prettier-plugin-sort-imports#85)
-   Fix: Top-of-file Comments get duplicated when moving runtime code ([IanVS/prettier-plugin-sort-imports#88)
-   Vue: Sort both script and setup script ([IanVS/prettier-plugin-sort-imports#90)
-   Vue and TypeScript: Use correct parser plugins ([IanVS/prettier-plugin-sort-imports#91)

##### ⚡️ Features

-   Add `<BUILTIN_MODULES>` Special Word ([IanVS/prettier-plugin-sort-imports#86)
-   Allow Explicit Separator after Top-of-file-comments ([IanVS/prettier-plugin-sort-imports#92)
-   Support babel-ts parser ([IanVS/prettier-plugin-sort-imports#97)

##### 🛠️ Repo Maintenance

-   Update dependencies, jest -> vitest ([IanVS/prettier-plugin-sort-imports#59)
-   Check formatting in CI ([IanVS/prettier-plugin-sort-imports#61)
-   Update to latest versions of Github Actions ([IanVS/prettier-plugin-sort-imports#73)
-   Add some more tests for comments ([IanVS/prettier-plugin-sort-imports#77)

##### 🧳 Dependencies

-   Drop javascript-natural-sort dependency ([IanVS/prettier-plugin-sort-imports#28)
-   Drop lodash.clone dependency ([IanVS/prettier-plugin-sort-imports#74)
-   Upgrade Babel to 7.21 ([IanVS/prettier-plugin-sort-imports#72)

**Full Changelog**: IanVS/prettier-plugin-sort-imports@v3.7.2...v4.0.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 4am on Monday" in timezone Asia/Kolkata, Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/timelessco/next-ts-app).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Behavior Change: Protect all comments before the first import (assume they're pragmas/top-of-file)
2 participants