8000 Per-project config settings · Issue #5168 · atom/atom · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
This repository was archived by the owner on Mar 3, 2023. It is now read-only.

Per-project config settings #5168

Open
benogle opened this issue Jan 20, 2015 · 71 comments
Open

Per-project config settings #5168

benogle opened this issue Jan 20, 2015 · 71 comments

Comments

@benogle
Copy link
Contributor
benogle commented Jan 20, 2015

No description provided.

@wyand
Copy link
Contributor
wyand commented Jan 22, 2015

I'd love the ability to specify a configuration directory on the command line... the use case I have in mind is using a separate configuration when invoked via git's core.editor or other similar tools. Would also be nice to have the same option on npm so that packages for customized configuration can be managed with npm.

Is that a part of this feature? Should it be? Should this be a separate enhancement request?

@idris
Copy link
idris commented Oct 1, 2015

👍

@joefitzgerald
Copy link
Contributor

👍 in the form of core support for EditorConfig.

@Willyham
Copy link

👍 Lack of per-project settings when moving between projects with different tab spacing is a real pain.

@dark-panda
Copy link

👍 on the different tab spacing pain.

@entr
Copy link
entr commented Dec 11, 2015

A must-have.

@gpupo
Copy link
gpupo commented Jan 6, 2016

👍 must-have feature

@fru
Copy link
fru commented Jan 6, 2016

+1

@ghost
Copy link
ghost commented Jan 12, 2016

Yes, please

@umpirsky
Copy link

Would be useful in deed. 👍

@neuling
Copy link
neuling commented Jan 21, 2016

+1

@glen-84
Copy link
glen-84 commented Jan 21, 2016

You can use this extension.

@tschijnmo
Copy link

+1

Atom Project Manager is definitely a good thing for this purpose. However, it still requires the projects to be added to the user's configurations. Maybe what could be better is some kind of project file that can be committed into version control in the source tree. Then developers of the same project could do something like atom an_awesome_project.cson then configurations required by the project could be immediately ready.

@scruffydan
Copy link

@tschijnmo Exactly!

Sublime Text allows you to place a project.json file within the project root folder with all the project specific settings. This file can become part of your source control so everyone has the same settings.

@abadcafe
Copy link
abadcafe commented Mar 7, 2016

+1

@z11h
Copy link
z11h commented Mar 7, 2016

👍 this would actually be a very good idea!

@rudineirk
Copy link

+1

1 similar comment
@pwnall
Copy link
pwnall commented Mar 24, 2016

👍

@mehcode
Copy link
Contributor
mehcode commented Mar 24, 2016

A project file isn't the core-level solution here.

Atom understands a single layer of configuration right now. Atom needs to be able to understand layered configuration (2-layer but still multi-layer).

The primary problem with existing solutions (eg. project manager) is they just modify the global configuration on project load. If you were to touch the global configuration at all (even just hiding the menu bar) it would actually commit the current configuration as the new global configuration.

The core solution can be as simple as atom.project.setConfig that just "overlays" a configuration object on top of atom.config that is never saved into the global configuration. With that a project like project manager or project plus could easily implement the user-facing portion.

@jorgepinon
Copy link

+1

@tyleri
Copy link
tyleri commented Mar 21, 2018

I am part of a group of students at Cornell University working on creating a package for this feature by utilizing the changes made in this pull request: #16845

Although the referenced pull request is still only included in the beta build, we hope that when it is included in the stable version of Atom, our package will be able to fully support per-project config settings by utilizing a local project config file.

@JustinAiken
Copy link
JustinAiken commented Mar 21, 2018

@tyleri - Does your PR manage merging configs - can you have base settings, and then the per-project configs override/merge with?

For example:

  • Have a base core.ignoredNames settings of ["log", ".git"]
  • Project 1 has core.ignoredNames settings of ["project1tmp/", "node_modules"]
  • Project 2 has no specific core.ignoredNames settings

Would Project 1 get ["log", ".git", "project1tmp/", "node_modules"], while Project 2 should just get the default ["log", ".git"] ?

@Zireael07
Copy link

@JustinAiken: Question better asked under the PR methinks? In this issue, it could easily get lost...

@tyleri
Copy link
tyleri commented Apr 13, 2018

@JustinAiken
Just to be clear, this PR was not created by me or my team - we are just using the functionality to implement our package.

From my testing, it seems like the per-project configs override the base settings. In your example, Project 1 would get ["project1tmp/", "node_modules"] while Project 2 would get the default ["log", ".git"].

The package we are developing may or may not follow this behavior - we are still in the midst of testing and will be asking for feedback from the open source community in the coming weeks.

@tyleri
Copy link
tyleri commented Apr 24, 2018

My team is wrapping up development on the package that I spoke about above. These coming two weeks we are conducting user tests and would greatly appreciate if you could help demo our package and provide feedback. This would take 30-45 minutes to install and use the package, and then we would ask for some feedback so we can make changes. Please email me at tyi3@cornell.edu if you’re interested!

@LookItsBlu
Copy link

@tyleri any info on whether or not this will allow us to save custom window layout per project?

For instance, I currently have this setup for a LaTeX project

LaTeX dev layout

And having this be setup automaticaly as soon as the project is open would be really useful, rather than having to redo it all everytime the project is open again

@benyanke
Copy link

This would also be very useful for me as well.

@andymeneely
Copy link

Just to report back here, I got a chance to Skype with Tyler. They did a nice job. There are a few bugs to squash but it was in good shape last week.

@LookItsBlu I did not test that out, but I don't think it will. It's basically anything that's in this atom config

@harmsk
Copy link
harmsk commented Jun 25, 2018

I am the faculty sponsor for the project that @tyleri and team have been working on.

Their work has been released as the Atomic Management package: https://atom.io/packages/atomic-management

Please install the package and let us know how it works. We know there will be some initial issues, so please feel free to submit an issue or a pull request.

Thanks again for everybody that helped make this package a reality!

@mdesantis
Copy link

I suggest not to add comments like "Thanks!" "I'm gonna try it!" because if a lot of them come they would act like spam and force users to disable notifications which could be useful to track for issues on the package

@dpwrussell
Copy link

@harmsk I'm sure that this new package is good, but is it proposed that this should become the standard (i.e. officially sanctioned) package for config management in atom?

As per my above comments, that is the most important objective. Without being recognised as the standard, it is not feasible for other packages to be able to integrate and thus is of very limited utility.

@harmsk
Copy link
harmsk commented Jun 26, 2018

@dpwrussell harmsk/atomic-management#40

@MWalid
Copy link
MWalid commented Sep 8, 2018

Why not just use https://atom.io/packages/editorconfig?

@jesteves
Copy link
jesteves commented Sep 13, 2018

@MWalid

Why not just use https://atom.io/packages/editorconfig?

It was actually my first idea coming from Sublime, but I'm afraid for me doesn't work as needed. To be precise: I have projects with files encoded in UTF-8 and projects with ISO-8859-1. This can be handled by EditorConfig's charset={utf-8|latin1} setting, but Atom doesn't recognize the resulting encoding...

For the interested, I've actually just submitted a fix for consideration of the atom-editorconfig guys...

@gracegrimwood
Copy link

Would absolutely love this to be a thing. It's useful enough to be core functionality, we shouldn't have to install a separate package for this.

@TriMoon

This comment has been minimized.

@Tails
Copy link
Tails commented Aug 8, 2019

What is the state of this now 4.5 years later?

@shir
Copy link
shir commented Aug 9, 2019

@Tails everybody went to VSCode 😞

@TriMoon
Copy link
TriMoon commented Aug 16, 2019

@Tails everybody went to VSCode disappointed

not everybody 👅

@steelbrain
Copy link
Contributor

Just published project-config that behaves like VSCode workspace config, it reads the file at .atom/config.json and applies changes on the fly, it requires no changes from package authors and works with the packages you've already installed.

Here's an example config for project-config to enable lint on save for Prettier for a project

{
  "prettier-atom": {
    "formatOnSaveOptions": {
      "enabled": true
    }
  }
}

This is all thanks to the API @philipfweiss added in #16845 back in Early 2018 🙇

@JustinAiken
Copy link

@steelbrain - how does it do w/ merging config settings? For example, if I have node_modules and log/ as my ignored files in the core Atom settings, and then I have a project where I want to ignore foo/special_case, will all 3 get ignored, or just the foo/special_case ?

@steelbrain
Copy link
Contributor

@JustinAiken It behaves much like VSCode config, in that it only ever loads up whatever is at the workspace root. If you want it to respect the config in foo, you must launch Atom from foo

@TriMoon
Copy link
TriMoon commented Feb 19, 2020

@TriMoon

@Tails everybody went to VSCode 😞

not everybody 👅

And yes...now im on VSC also... 🔚 👋
:atom: is now 💀 for me... 🙉

@vlad0337187
Copy link

I see we have ATOM_HOME variable now.
Everything can be fixed if Atom will:

  • check: presence of .atom subdirectory in project directory (passed in cli args)
  • if present - would use it as home directory
  • if no packages installed - would install them from config from .atom subdirectory

@vlad0337187
Copy link

seems, no updates for last 3 years ...

@Tails
Copy link
Tails commented May 16, 2022

I love this reminder on how long ago it is already that I last used Atom because of exactly this issue.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

0