Comments (7)
@abarghoud according to the repository CONTRIBUTING any issue with the label "Help wanted" is allowed to be worked by anyone.
Also, is important to avoid Issue Claiming.
Please feel free to start working in this, you don't have to ask permission as it's labelled with "Help wanted"
from typescript.
@TulioPintoNeto Thanks for pointing it out, I did not know about the issue claiming thing. I forgot to read the contribution guide 🤦♂️
from typescript.
Sorry, I was supposed to mention @andrewbranch.
But to answer you, @abarghoud :
- This is a experience enhancement, not a bug (not that the nomenclature for this case matters too much hehe);
- Probably it is possible to achieve this using the TypeScript compiler. The responsibility for intellisense refactorings/formatting/codefixes is within the TypeScript compiler itself. You may find most of the intellisense things in the
src/services/
folder;
But the main thing I'm calling out here is that reordering lines when renaming will not always give a consistent output with Eslint (which is the desired according to the use cases provided in the description of this issue). This happens due to the fact that each codebase can set up its own rules for ordering imports.
from typescript.
@RyanCavanaugh I'm interested in tackling this. Is this something I can jump in on?
from typescript.
Context
@abarghoud I was checking about the way we sort when adding an import (the suggestion on this issue)
Seems like we are sorting by the folder structure, not by the variable name, while Eslint rule is sorting by variable name.
TypeScript import (please note that we have an error in line 2 due to sort-import
rule from eslint):
Screen.Recording.2024-03-29.at.21.17.08.mov
Next steps?
With that in mind:
- Should we use the same order the
import
command does?;
OR
- Should we use the same order as the Eslint rule?
I think it's pertinent, so I'm also bringing this:
Eslint team chose not to auto-fix the order of imports in --fix
because this change the way the code could behaviour:
eslint/eslint#11542
I mean, by implementing this behaviour (of reording lines) we can even increase the amount of conflicts with Eslint, as the order of lines could be defined differently for each project on the eslint config. So I'm advocating against it based on the use cases given
from typescript.
@TulioPintoNeto I support the notion of retaining TypeScript's team's design for auto-import ordering. This is especially pertinent considering the availability of multiple ESLint rules that can be configured to alter the sorting method.
I believe the bug that needs fixing is the failure to reorder file names when renaming them. However, I'm concerned that it may not be possible because I think IDEs handle it rather than TypeScript itself.
Wdyt?
from typescript.
There are TS Server preferences that control the sort order, and a lot of utilities under ts.OrganizeImports
to detect and apply those preferences.
from typescript.
Related Issues (20)
- [NewErrors] 5.5.0-dev.20240421 vs 5.4.5 HOT 63
- [ServerErrors][TypeScript] 5.5.0-dev.20240421 HOT 14
- [ServerErrors][JavaScript] 5.5.0-dev.20240421 HOT 8
- `T extends infer I1 extends { K: infer I2 }` infers I2 to unknown HOT 6
- Wrong type narrowing on union type. HOT 2
- Document link for reference types and path
- object with `?:` property type, spread last --> allowed (but shouldn't) HOT 3
- Add a flag to require JS object literals to be initialized with all declared members HOT 4
- Type inference lost after spreading array with `ArrayLike` HOT 1
- Regular Expression finds HOT 4
- "This comparison appears to be unintentional" and control flow analysis with a variable updated in lambda HOT 4
- Classes static generic function return `any` type. HOT 2
- Is assignment not allowed here? HOT 2
- Editor changes overload resolution based on syntax HOT 5
- TS cache corruption leads to "error TS2590: Expression produces a union type that is too complex to represent" HOT 1
- Type alias circularly references itself (5.4 regression) HOT 1
- error TS2385: Overload signatures must all be public, private or protected. HOT 2
- `export type * ...` statements in `.d.ts` files do not work (5.4 regression) HOT 4
- HTMLFormElement disallows symbol keys HOT 5
- TypeScript language service cannot find subclass references/implementation of mixin methods
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 typescript.