Giter Club home page Giter Club logo

Comments (5)

jacktasia avatar jacktasia commented on July 4, 2024 1

Thanks for the kind words and bringing this up. I think this will be pretty easy for me to do. I am using a lot of React myself recently, so I want this too. I'll update this issue with my progress.

from dumb-jump.

jacktasia avatar jacktasia commented on July 4, 2024 1

@axyz I just pushed up a change that should cover most, if not all, of these cases. It should be available via MELPA within 12 hours of now. Please re-open this issue if you run into any problems. Thanks again!

from dumb-jump.

axyz avatar axyz commented on July 4, 2024

great, thank you. Looking forward for it

from dumb-jump.

jacktasia avatar jacktasia commented on July 4, 2024

So I got this working locally for React for the vast majority of my React code:

  1. class MyComponent extends Component { ... used like <MyComponent someProp={1}>...</MyComponent>
  2. const mySomething = <div>...</div>; used like <div>{mySomething}</div>

That covers the vast majority of my current React code. Is there any usage I am missing that I should support? If so, a code snippet or repo to test against would be appreciated. Thanks!

from dumb-jump.

axyz avatar axyz commented on July 4, 2024

I use a lot of stateless components in function form so something like:

const MyComponent = props => <div>{props.text}</div>

but may also be

export default MyComponent = ({text}) => <div>{text}</div>

or more exotic stuff like

const MyComponent = ({
  prop1,
  prop2,
}, {
  context1,
  context2,
}) => (
  <div>{prop1} {context1}<div>
);

basically any function may be a component, so stuff like <MyComponent> should be search for source in the whole function scope.

If this leads to problems in the results you can somehow restrict to functions that returns jsx code or React.createElement, but it may be tricky.

Another possible case is the one where you have the name of the export different from the name of the function or class and being a simple assignation e.g.

class MyBaseComponent extends Component .....
const DecoratedComponent = Radium(Rezponsive(MyBaseComponent);
export default DecoratedComponent

but it should be an edge case, as usually people just export default it.

I will keep you updated if I can think of other edge cases.

P.S. lot of people use extends React.Component instead of just Component, in case you want to use it in a regexp.

from dumb-jump.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.