Comments (10)
It looks like this is an issue again in v0.4.0.
Edit: Tested the same script with v0.3.32, newlines are preserved as expected.
from jscodeshift.
Hmm maybe this fixes it, benjamn/recast#199
from jscodeshift.
Mmh, have to look at the recast thing, but also have a look at #27.
from jscodeshift.
@fkling this is exactly what I mentioned yesterday. Everyone gets tripped up by this. Let's just merge #27 with the auto-detection? That should cover this really nicely without a "breaking" change.
from jscodeshift.
@cpojer: I know, I was just wondering what recast did about this since it was mentioned there as well.
from jscodeshift.
So, the issue seems to be with using Babel as parser. If esprima is used, trailing and leading whitespace is preserved. I'd suggest we first look into if we can fix this in recast before making changes to jscodeshift.
edit: nvm, it works also when I use babel-core as parser... now I'm confused...
from jscodeshift.
OK, I know what the issue is. recast.parse(...)
returns a File
AST node which contains the location information about the leading and trailing white spaces, but since we are throwing that object away and only use program
in https://github.com/facebook/jscodeshift/blob/master/src/core.js#L74, we are loosing that information.
Maybe everything will just work if we use the File
object instead.
from jscodeshift.
Awesome! Thanks @fkling
from jscodeshift.
Release in v0.3.3 btw.
from jscodeshift.
Aha, ran into this issue as well. I can confirm that downgrading to v0.3.32 fixes the issue.
from jscodeshift.
Related Issues (20)
- URL transform doesn't work with TypeScript HOT 2
- Can't see file in current working directory - "Skipping path which does not exist." HOT 2
- Ignore pattern doesn't work with relative paths starting with two dots (../) HOT 1
- Automatically publish latest dev version to npm HOT 1
- Declaration has "null" loc field when inside export HOT 1
- missing semicolon how to fix this HOT 9
- how can I add @babel/plugin-proposal-private-methods to jscodeshift ? HOT 5
- extensions cli option not respected when passing individual file paths
- cannot replace JSX nodes within render props
- Added parenthesis around await expression in if statement HOT 4
- Updating setter function's parameter cause invalid output HOT 4
- Easiest way to insert a comment at the beginning of a file? HOT 3
- Generics are being removed from JSX Elements HOT 2
- Unit Tests Broken? HOT 1
- Last npm release (0.15) is ~6 months old HOT 2
- how to remove empty line using jscodeshift? HOT 1
- WSL2 - Can't install project with jscodeshift in dependencies HOT 1
- Enable parsing of `accessor` keyword HOT 6
- testOptions aren't propagated through some of the test methods
- [Bug] [email protected] ignores the files not starting with `.js` extension by default HOT 5
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 jscodeshift.