Comments (7)
@jcberquist I'd like to add this as a first class command. The idea would be to use it with commandbox-githooks
.
{
"githooks": {
"preCommit": "cfformat format-staged",
"postCommit": "cfformat format-staged-cleanup"
}
}
This would:
- Get the staged files from git
- Format each of them
- Add the changes to the index.
- Cleanup the index postCommit
How do you feel about this?
from commandbox-cfformat.
Here's an example as a recipe:
set FILES=`echo "git diff --cached --name-only" | run | grep .cfc`
echo ${FILES} | forEach "cfformat \${item} --overwrite
set LINEBREAK=`#chr 10`
set FILELIST=`#listChangeDelims ${FILES} " " ${LINEBREAK}`
echo "git add ${FILELIST}" | run
exit 0
from commandbox-cfformat.
I am not familiar with commandbox-githooks
so forgive me: What is the relationship between the preCommit cfformat format-staged
and the recipe you provided above?
from commandbox-cfformat.
The idea is similar to husky
in Node land — run commands on certain git events. The recipe is a way to accomplish the steps listed above. The command I'm suggesting would make it so we don't need to distribute the recipe some other way.
from commandbox-cfformat.
Ok, well that sounds fine to me.
I need to add a way to tokenize a set of files without making a full pass through a directory. The binary is very fast, but it takes ~50ms to start up and load the syntax files into memory. If I can get it to tokenize a set of files without restarting it each time the cumulative time savings adds up.
from commandbox-cfformat.
This should be doable now, since cfformat
can now work on an arbitrary list of files. How are you envisioning cfformat format-staged
working - is that supposed to be a "magic" string that is not treated as a path? Or would it be better to to cfformat --format-staged
?
from commandbox-cfformat.
I'm currently looking into solving this just in a package script, so cfformat would not need any special features to accommodate this.
from commandbox-cfformat.
Related Issues (20)
- Subsequent lines of a multiline statement should be indented. HOT 2
- cfformat check doesn't handle Unicode with BOM files HOT 1
- Forgebox installation is broken HOT 1
- DocBox commenting formatting HOT 6
- struct element alignment HOT 5
- Tag type comments converted to script comments erroneously HOT 2
- annotation with a `:` is adding a space HOT 2
- Latest version removing indendations on Comments HOT 1
- Latest version removing comments HOT 1
- CommandBox no longer reloads on module installation HOT 8
- preserve case in doc-block? HOT 2
- Indent content between cfscript tags HOT 3
- Ignoring blocks/tags via settings vs comment HOT 2
- Property alignment incorrect when the number of attributes differs
- annotation with a - is adding a space
- tag-check and single tags that are not self-closing HOT 3
- abstract component modifier injects spaces
- Lines are improperly outdented
- Method Multiline formatting/highlighting when inital element is not a method HOT 1
- CSS styles
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from commandbox-cfformat.