nomicode / wip-lintfree Goto Github PK
View Code? Open in Web Editor NEWA CLI tool for generating standard annotations for linting tools, tests, and so on (including support for GitHub Actions)
License: MIT License
A CLI tool for generating standard annotations for linting tools, tests, and so on (including support for GitHub Actions)
License: MIT License
See:
Tutorials:
Additional work:
Would be nice if I could find something that integrates well with VS Code.
The run
command should read config files from a separate directory and should allow the user to wrap other tools and pre-process their output (especially satisfying the use-case of enriching the output by adding line number information). This would help with some tools (like Prettier, Black, and Lychee) which fall into two categories:
In fact, it seems to me that these two categories could be generalized so that a single built-in feature could be configured to handle most use-cases.
The run
command could also take care of other common tasks:
This issue was inspired by:
At the moment, the way I a using Obelist is as follows:
ec
on each file and pipes the results into the obelist
commandThis situation is even more complex for tools like Prettier, which requires me to wrap the tool, produce diffs, and generate line-based annotations before piping to the obelist
command.
I don't want to set up all this machinery on every project. It would be much easier if Obelist could automate all of this for me.
My current thinking is:
Extend the configuration files so that you can specify:
The configuration could include information about how to wrap the results (e.g., for commands that only produce diffs).
Create a new subcommand: obelist run
that takes the name of a single lint check and is capable of running the lint commands and parsing the output in one step (avoiding the need to write a separate shell script to wrap the lint command)
Add a central .obelist.yaml
file, allowing you to configure a default set of lint checks (avoiding the need to integrate multiple lint checks into a separate build system such as GNU Make)
Some ideas:
console
github
gcc
json
checkstyle
Some ideas:
Based on the outcome of this research, what is the best way forward when no line number can be determined?
turn the scripts I'm making to wrap other tools into a shippable package
perhaps made as plugins with octonote as an extendable package
or perhaps as a seperate package that can wrap tools and produce standard output
same is true for standardized scripts that run all lint tools
I would like a project name that is:
Plus there are a few other projects on GitHub already with this name
I want to be able to reuse my customizations
This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.
These updates are currently rate-limited. Click on a checkbox below to force their creation now.
These updates have all been created already. Click a checkbox below to force a retry/rebase of any.
.github/workflows/build.yaml
actions/checkout v3
pyproject.toml
poetry-core >=1.0.0
pyproject.toml
python ^3.7
pastel ^0.2.1
click ^8.0.3
sh ^1.14.2
inflection ^0.5.1
wrapt ^1.13.3
charset-normalizer ^2.0.7
lxml ^4.6.4
pyjq ^2.5.2
PyYAML ^6.0
natsort ^8.0.0
urlextract ^1.4.0
ipython ^7.31.1
icecream ^2.1.1
reorder-python-imports ^3.0.0
prospector ^1.5.3
pyroma ^4.0
vulture ^2.3
flake8 ^3.9.2
flake8-cognitive-complexity ^0.1.0
pep8 ^1.7.1
At the moment, I can generate line-based annotations from tools that produce diff-based output. This approach is clumsy, and I don't want to re-implement this multiple times in multiple repositories.
Problems:
Some tools will only modify files in place. These tools need to be wrapped so that a temporary copy of the file is created, modified, and then compared to the original. Other tools can print diffs without modifying the files. Both types of tools need to be accommodated.
Some tools can only be used on one file at a time. Other tools can be run on multiple files at once. Both types of tools need to be accommodated.
Possible approaches:
A new subcommand that genericizes the job of a wrapper script (i.e., handles copying files, producing diffs, and so on) and can be used with any third-party tool.
A new diff
parser that reads in a diff (or diffs) and produces a set of line-based annotations.
Extend the parser configuration for tools like this so that you can specify the command to run, how the diffs should be generated, and so on. Then, instead of running the lint command with a wrapper and passing the results to obelist parse
. You could do something like obelist run
and have the end-to-end process handled for you.
I accidentally left a binary file in the source repository and while running a lint check, the EditorConfig check produced a Python error when trying to process the output.
To solve this problem, I filtered out binary files from the EditorConfig checks. However, the underlying issue should be replicated and investigated.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.