Git Product home page Git Product logo

Comments (11)

fatih avatar fatih commented on May 18, 2024 3

That's up to the go fmt command, if you use gofmt just specifiy in your vimrc:

let g:go_fmt_options = "-tabs=false -tabwidth=4"

from vim-go.

Netherdrake avatar Netherdrake commented on May 18, 2024

Hi,

It is possible to pass options to the formatter like so:
gofmt -tabs=false -tabwidth=4 main.go

Via the go-vim setting:
let g:go_fmt_command = "gofmt -tabs=false -tabwidth=4"

However now I'm wondering how would it be possible to pass these settings when using goimports?

I'm trying to get my code formatted with spaces instead of tabs, 4 spaces in width.

from vim-go.

fatih avatar fatih commented on May 18, 2024

Well just pass it to goimports binary path!

let g:go_goimports_bin = "goimports -tabs=false -tabwidth=4"

can you try it?

from vim-go.

Netherdrake avatar Netherdrake commented on May 18, 2024

I have 2 issues with that approach.
1.) It doesn't work. I get this on save.
2.) It prompts me with goimports installation on every vim start, even though its already installed.

% vim main.go 
Installing code.google.com/p/go.tools/cmd/goimports
Press ENTER or type command to continue

from vim-go.

fatih avatar fatih commented on May 18, 2024

My suggestion was based on that you had a goimports installed somewhere else. We need to seperate binary path and the options. I've opened a new issue where we are gonna introduce a new parameter. Let us talk from there now. Thanks for reporting.

from vim-go.

Netherdrake avatar Netherdrake commented on May 18, 2024

I see the commit 13a71b0 adds new option, but I'm wondering how can that option be used to achieve go-vim usage of goimports combined with custom formatting settings (-tabs=false -tabwidth=4)?

from vim-go.

Netherdrake avatar Netherdrake commented on May 18, 2024

@fatih Well, naturally that's the first thing I tried before posting here, and it didn't work for me.
Is there any additional setting that I'm missing?

I went ahead, and deleted every occurrence of goimports from my system, and had the go-vim plugin re-install it.
sudo find / -name 'goimports'

The behavior is pretty much the same as with the one described 9 days ago. When I hit :w, I get some echo of code on bottom, while in buffer the code is nor formatted, nor do imports run. link

Here is my current vimrc

from vim-go.

fatih avatar fatih commented on May 18, 2024

goimports doesn't have those options. Only gofmt has it. You need to change it to g:go_fmt_command = 'gofmt'.

from vim-go.

Netherdrake avatar Netherdrake commented on May 18, 2024

Well than, that means if I want to do goimports there is no way for me to format my code with proper spacing (other than running :%retab on BufWritePost)?

from vim-go.

fatih avatar fatih commented on May 18, 2024

Yes, unfortunately this is a limitation of goimports rather than vim-go. You can just type goimports in the shell and see what it supports.

from vim-go.

Netherdrake avatar Netherdrake commented on May 18, 2024

I was aware of this limitation, I thought that you would do some magic with new update (eg. run goimports first, and than gofmt over it).

The goimports tool is really stupid in this sense, they should merge it with gofmt and provide it as a flag.

from vim-go.

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.