{"id":23286846,"url":"https://github.com/atsyplenkov/formalist","last_synced_at":"2026-03-14T14:12:21.763Z","repository":{"id":268623362,"uuid":"903982492","full_name":"atsyplenkov/formalist","owner":"atsyplenkov","description":"Positron extension to make R function calls explicit and fix lints on demand","archived":false,"fork":false,"pushed_at":"2025-01-30T22:53:32.000Z","size":8958,"stargazers_count":5,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-07T12:09:19.671Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://open-vsx.org/extension/atsyplenkov/formalist","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/atsyplenkov.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["atsyplenkov"]}},"created_at":"2024-12-16T02:54:11.000Z","updated_at":"2025-01-30T22:53:35.000Z","dependencies_parsed_at":"2024-12-17T23:34:31.218Z","dependency_job_id":null,"html_url":"https://github.com/atsyplenkov/formalist","commit_stats":null,"previous_names":["atsyplenkov/formalist"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atsyplenkov%2Fformalist","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atsyplenkov%2Fformalist/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atsyplenkov%2Fformalist/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atsyplenkov%2Fformalist/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/atsyplenkov","download_url":"https://codeload.github.com/atsyplenkov/formalist/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238557019,"owners_count":19491945,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-20T02:14:49.084Z","updated_at":"2026-03-14T14:12:21.756Z","avatar_url":"https://github.com/atsyplenkov.png","language":"JavaScript","funding_links":["https://github.com/sponsors/atsyplenkov"],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\u003ccode\u003eformalist\u003c/code\u003e — a Positron extension\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://open-vsx.org/extension/atsyplenkov/formalist\"\u003e\n        \u003cimg src=\"https://img.shields.io/open-vsx/dt/atsyplenkov/formalist?style=flat\u0026labelColor=1e2c2e\u0026color=007ACC\u0026logo=Open%20VSX\u0026logoColor=white\u0026label=Open%20VSX%20downloads\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/atsyplenkov/formalist/actions/workflows/publish-extensions.yml\"\u003e\n        \u003cimg src=\"https://img.shields.io/github/actions/workflow/status/atsyplenkov/formalist/publish-extensions.yml?style=flat\u0026labelColor=1e2c2e\u0026color=007ACC\u0026logo=GitHub%20Actions\u0026logoColor=white\u0026label=deploy\"\u003e\u003c/a\u003e\n    \u003cbr\u003e\n    \u003ca href=\"https://github.com/atsyplenkov/formalist/blob/master/LICENSE.md\"\u003e\n        \u003cimg src=\"https://img.shields.io/github/license/atsyplenkov/formalist?style=flat\u0026labelColor=1e2c2e\u0026color=007ACC\u0026logo=GitHub\u0026logoColor=white\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://www.repostatus.org/#wip\"\u003e\n        \u003cimg src=\"https://img.shields.io/badge/repo_status-WIP-ffb200?style=flat\u0026labelColor=1e2c2e\u0026logo=readthedocs\u0026logoColor=white\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003e [!IMPORTANT]\n\u003e The extension is designed to work **ONLY** in\n\u003e [Positron](https://github.com/posit-dev/positron) IDE starting from version `2025.01.0`, as it heavily depends\n\u003e on the Positron API.\n\n# Features\n\n\u003e [!NOTE]\n\u003e All features work on selected text. If no text is selected, you'll receive a notification to make a selection first.\n\n## Make R Function Calls Explicit\n\n`Formalist` can make R function calls explicit, instead of implicit ones, using the [`{pedant}`](https://github.com/wurli/pedant) R package. In other words, it checks the currently attached packages, i.e., the ones already loaded using `library()`, and transforms R function calls like `select(mtcars, mpg, cyl)` into `dplyr::select(mtcars, mpg, cyl)`.\n\n![](https://github.com/atsyplenkov/formalist/raw/master/assets/formalist_demo.gif)\n\n## Fix Lints\n\nAnother key feature of `Formalist` is its ability to detect and correct lints in your R code. The linting process is performed locally using the [`{flir}`](https://github.com/etiennebacher/flir) package, which must be installed in your R environment.\n\n![](https://github.com/atsyplenkov/formalist/raw/master/assets/formalist_flir.gif)\n\n\u003e [!TIP]\n\u003e The `{flir}` R package installs in your current environment, so, you can setup your custom lint rules by running `flir::setup_flir()` in your R console (read more [here](https://flir.etiennebacher.com/articles/adding_rules)).\n\n# Installation\n\nThe extension is published on the [Open VSX Registry](https://open-vsx.org/extension/atsyplenkov/formalist): just click `Install` there or manually install it with:\n\n1) Start the [Positron](https://github.com/posit-dev/positron).\n\n2) Inside Positron, go to the extensions view either by executing the `View: Show Extensions` command (click `View` -\u003e `Command Palette...`) or by clicking on the extension icon on the left side of the Positron window.\n\n3) In the extensions view, simply search for the term `Formalist` in the marketplace search box, then select the extension named `Formalist` and click the install button.\n\nAlternatively, you can install the latest version from the [Releases](https://github.com/atsyplenkov/formalist/releases/) page. Download the latest `.vsix` file and install it as described [here](https://code.visualstudio.com/docs/editor/extension-marketplace#_install-from-a-vsix).\n\n## Dependencies\n\n`Formalist` depends on two R packages [`{pedant}`](https://github.com/wurli/pedant) and [`{flir}`](https://github.com/etiennebacher/flir). If your current environment is lacking either of them, you will be prompted to install them.\n\n![](https://github.com/atsyplenkov/formalist/raw/master/assets/formalist_install.gif)\n\n# Questions and Feature Requests\n\nThere's a lot going on with the development of new features in `Formalist`. If you have any questions or something is not working, feel free to [open an issue](https://github.com/atsyplenkov/formalist/issues) or start a conversation on [Mastodon](https://fosstodon.org/@atsyplenkov).\n\n\n# Contributions\n\nContributions are welcome! If you'd like to contribute, please, fork, submit a PR and I'll merge it.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatsyplenkov%2Fformalist","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fatsyplenkov%2Fformalist","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatsyplenkov%2Fformalist/lists"}