Code Monkey home page Code Monkey logo

Comments (13)

wavded avatar wavded commented on August 30, 2024

this would be handy indeed!

from vim-javascript.

pangloss avatar pangloss commented on August 30, 2024

Anyone given this one a try? I looked at it a bit but it didn't look like a simple change and I haven't had time to do any more. I'd love to see this fixed though!

from vim-javascript.

AndrewRayCode avatar AndrewRayCode commented on August 30, 2024

I attempted this dirty deed here:

AndrewRayCode@37e7379

It works for me, indents multiline var statements separated with commas, and after finishing the last assignment it unindents a level.

This commit will not work if you don't use semicolons when writing javascript.

from vim-javascript.

pangloss avatar pangloss commented on August 30, 2024

This looks pretty promising! Could you make pull requests for your changes?

If anyone else wouldn't mind trying this out a bit and reporting back, that'd be great, too.

from vim-javascript.

AndrewRayCode avatar AndrewRayCode commented on August 30, 2024

looks like it needs a little (lot) more work - it doesn't work if you just have a var list without assignment like var a,b,c, and it gets confused if you do var a = function() {...}, b = ...;

from vim-javascript.

pangloss avatar pangloss commented on August 30, 2024

Ok no problem. If you make a pull request anyway it might be easier to pull it in when it's eventually completed.

Thanks,
Darrick

from vim-javascript.

utyf avatar utyf commented on August 30, 2024

I made this changes some time ago for standard indenter and now merged them with this project.
It has some limitations:

  • you need to use semicolons (it's quite common requirement)
  • you need not to use multi-line variables (like objects, arrays or functions) in this variables' declaration (it's not common, but more readable)

Maybe, it contains some bugs, but I didn't meet them yet.

from vim-javascript.

lepture avatar lepture commented on August 30, 2024

👍

from vim-javascript.

ThiefMaster avatar ThiefMaster commented on August 30, 2024

Unfortunately this pull requests still results in broken indentation. Try indenting (gg=G in normal mode) the following examples:

var config = require('yaml-config'),
    settings;

function x() {

};

and

var config = require('yaml-config'),
    settings = 'whatever';

function x() {

};

Both cases result in horribly indented code.

from vim-javascript.

goatslacker avatar goatslacker commented on August 30, 2024

I committed 4dee33f which fixes some of the multiple var issues as well as adds comma-first style. @ThiefMaster code sample still doesn't indent properly though.

Shouldn't be too difficult to add though.

from vim-javascript.

goatslacker avatar goatslacker commented on August 30, 2024

I'll be adding test cases soon and I'll add this in as a regression test

from vim-javascript.

ThiefMaster avatar ThiefMaster commented on August 30, 2024

A quick test showed me an indentation like this::

var foo = 0,
        bar = 123,
        foobar = 456;

I think this is horrible style and an option to prevent the double indentation would be nice.

from vim-javascript.

goatslacker avatar goatslacker commented on August 30, 2024

Happens when you have 4 space indentation. I'll change it back to single (instead of double)

There are still some issues with it, mainly if you try below functions and some nits with comma-first.

from vim-javascript.

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.