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

Add proc-macro to derive CheckCodePrefix #1656

Merged
merged 3 commits into from Jan 5, 2023

Conversation

messense
Copy link
Contributor

@messense messense commented Jan 5, 2023

IMO a derive macro is a natural way to generate new code, and it reduces the chance of merge conflicts.

@messense messense force-pushed the derive-check-code-prefix branch 2 times, most recently from f9aabe7 to 9180834 Compare January 5, 2023 06:26
@charliermarsh
Copy link
Member

Yeah this makes a lot of sense, thank you. My main critique of macros like this is that they hurt the IDE experience, since (e.g.) CheckCodePrefix will no longer autocomplete in the editor... But this does seem more natural, and it also solves some of the bootstrapping problems that we have today, whereby we can't reference check code prefixes before generating them, etc.

@charliermarsh charliermarsh merged commit 1991d61 into astral-sh:main Jan 5, 2023
@charliermarsh
Copy link
Member

(Nice work.)

@messense messense deleted the derive-check-code-prefix branch January 5, 2023 23:07
@not-my-profile
Copy link
Contributor

My main critique of macros like this is that they hurt the IDE experience, since (e.g.) CheckCodePrefix will no longer autocomplete in the editor...

Autocompletion works fine for me using rust-analyzer, which has rust-analyzer.procMacro.enable enabled by default. Are you using another language server for rust? I highly recommend rust-analyzer.

@messense
Copy link
Contributor Author

messense commented Jan 6, 2023

I think intellij-rust also works fine with derive macros now: intellij-rust/intellij-rust#6908

org.rust.macros.proc.derive - enables expansion of derive procedural macros. Enabled by default

renovate bot added a commit to ixm-one/pytest-cmake-presets that referenced this pull request Jan 6, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [ruff](https://togithub.com/charliermarsh/ruff) | `^0.0.211` ->
`^0.0.212` |
[![age](https://badges.renovateapi.com/packages/pypi/ruff/0.0.212/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/pypi/ruff/0.0.212/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/pypi/ruff/0.0.212/compatibility-slim/0.0.211)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/pypi/ruff/0.0.212/confidence-slim/0.0.211)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>charliermarsh/ruff</summary>

###
[`v0.0.212`](https://togithub.com/charliermarsh/ruff/releases/tag/v0.0.212)

[Compare
Source](https://togithub.com/charliermarsh/ruff/compare/v0.0.211...v0.0.212)

#### What's Changed

- Add task-tags & ignore-overlong-task-comments settings by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[astral-sh/ruff#1654
- Stop highlighting --help output in README as shell by
[@&#8203;not-my-profile](https://togithub.com/not-my-profile) in
[astral-sh/ruff#1655
- Add proc-macro to derive `CheckCodePrefix` by
[@&#8203;messense](https://togithub.com/messense) in
[astral-sh/ruff#1656
- \[`flake8-bandit`] Add Rule for `S324` (Insecure hash functions in
`hashlib`) by [@&#8203;saadmk11](https://togithub.com/saadmk11) in
[astral-sh/ruff#1661
- Avoid false-positives for yields with non-identical references by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[astral-sh/ruff#1665
- \[`flake8-bandit`] Add Rule for `S506` (unsafe use of yaml load) by
[@&#8203;saadmk11](https://togithub.com/saadmk11) in
[astral-sh/ruff#1664
- Fix flake8-import-conventions configuration examples by
[@&#8203;diego-pm](https://togithub.com/diego-pm) in
[astral-sh/ruff#1660
- Allow overhang in Google-style docstring arguments by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[astral-sh/ruff#1668
- Fix some `&String`, `&Option`, and `&Vec` usages by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[astral-sh/ruff#1670
- Improve Pandas call and attribute detection by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[astral-sh/ruff#1671
- Implement duplicate isinstance detection (SIM101) by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[astral-sh/ruff#1673
- Replace \&String with \&str in AnnotatedImport::ImportFrom by
[@&#8203;andersk](https://togithub.com/andersk) in
[astral-sh/ruff#1674
- Simplify Option<String> → Option<\&str> conversion using as_deref by
[@&#8203;andersk](https://togithub.com/andersk) in
[astral-sh/ruff#1675
- Remove an unneeded .to_string() in tokenize_files_to_codes_mapping by
[@&#8203;andersk](https://togithub.com/andersk) in
[astral-sh/ruff#1676

#### New Contributors

- [@&#8203;diego-pm](https://togithub.com/diego-pm) made their first
contribution in
[astral-sh/ruff#1660

**Full Changelog**:
astral-sh/ruff@v0.0.211...v0.0.212

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **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.

---

- [ ] <!-- rebase-check -->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/ixm-one/pytest-cmake-presets).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC44MS4wIiwidXBkYXRlZEluVmVyIjoiMzQuODEuMCJ9-->

Signed-off-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
@charliermarsh
Copy link
Member

I use IntelliJ, for me I still don't see expansion unfortunately:

Screen Shot 2023-01-06 at 7 23 01 AM

Screen Shot 2023-01-06 at 7 23 08 AM

@messense
Copy link
Contributor Author

messense commented Jan 6, 2023

That's odd, it works for me in CLion, maybe you need to enable the Expand macros option

image

image

@charliermarsh
Copy link
Member

I think I had to enable some more stuff in "Experimental features" -- looks like it's working now! Amazing! Thanks both!

Screen Shot 2023-01-06 at 7 36 01 AM

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.

None yet

3 participants