Giter VIP home page Giter VIP logo

Comments (5)

iChenLei avatar iChenLei commented on May 24, 2024 2

Hi, guys. I transfer this issue from less/less-docs to less/less.js just now.

from less.js.

matthew-dean avatar matthew-dean commented on May 24, 2024 1

@krsdcbl The reason why this works is because I introduced the idea in Less 3.5 of importing the parser and re-parsing an evaluated value within the selector. So the evaluated value gets re-parsed into a selector. Hence, it's found.

However, I no longer think this is a great idea. Ideally, the parser and evaluation engines are not going back and forth and re-doing work, and they would be distinct stages (other than some very light regex parsing). It just makes the flow a little bit more complicated.

But... it's possible this might be possible without re-parsing (although not with the string example); but it's hard to say, so I'd rather not add this as a documented (supported) feature, as documentation implies future support. So I would call this relying on unsupported behavior which may break in the future.

from less.js.

matthew-dean avatar matthew-dean commented on May 24, 2024

@iChenLei Note, if this does work, it should still have a Less/CSS test demonstrating the functionality so we can test for regression.

On second thought, I'm wondering if this should be an officially supported feature or not. 🤔

from less.js.

krsdcbl avatar krsdcbl commented on May 24, 2024

@matthew-dean good point, maybe i did actually stumple upon a bug here 🤔

After some quick testing with https://www.lesstester.com/ - my code sample above:

  • doesn't work in LESS 3.0 & older
  • does work in LESS 3.5 & newer

Don't really know if its intentional or if it may have possible adverse effects. All I can say is I've been using recently and It's proven very useful in some specific cases, and didn't seem to create any issues (as far as i can currently judge)

from less.js.

krsdcbl avatar krsdcbl commented on May 24, 2024

@matthew-dean thanks for the explanation! That's a pity, unintenional as it may be its serving me quite well right now :D

But i totally see why this could become a problem when used on a larger scale than my 2-3 components that leverage this to enable extending variants onto the config-defined selectors of their respective base variants.

I guess my specific use is a rather niche application anyway and shouldn't be supported if it goes against the languages conventions & performance standards, or creates unnecessary overhead. I'll annotate the few cases where I used it & expect it to break sometime in the future, thx very much for the insight!

Out of curiosity, and sorry if I'm going off topic: but is this by any chance related to the reason :extend doesn't take interpolated selectors as a parameter?

from less.js.

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.