Local jed settings

19 April 2013   4 comments   Linux, MacOSX

Mind That Age!

This blog post is 4 years old! Most likely, its content is outdated. Especially if it's technical.

Powered by Fusion×

(if you're wondering what you're doing here, jed is a hardcore text based editor for programmers)

Thanks to fellow Jed user and hacker Ullrich Horlacher I can now have local settings per directory.

I personally prefer 2 spaces in my Javascript. And thankfully most projects I work on agrees with that standard. However, I have one Mozilla project I work on which uses 4 spaces for indentation. So, what I've had to get used to to is to edit my ~/.jedrc every time I switch to work on that particular project. I change: variable C_INDENT = 2; to variable C_INDENT = 4; and then back again when switching to another project.

No more of that. Now I just add a file into the project root like this:

$ cd dev/airmozilla
$ cat .jed.sl
variable C_INDENT = 4;

And whenever I work on any file in that tree it applies the local override setting.

Here's how you can do that too:

First, put this code into your <your jed lib>/defaults.sl: (on my OSX, the jed lib is /usr/local/Cellar/jed/0.99-19/jed/lib/)

% load .jed.sl from current or parent directories
% but only if the user is the same
define load_local_config() {
  variable dir = getcwd();
  variable uid = getuid;
  variable jsl,st;
  while (dir != "/" and strlen(dir) > 1) {
    st = stat_file(dir);
    if (st == NULL) return;
    if (st.st_uid != uid) return;
    jsl = dir + "/.jed.sl";
    st = stat_file(jsl);
    if (st != NULL) {
      if (st.st_uid == uid) {
        pop(evalfile(jsl));
        return;
      }
    }
    dir = path_dirname(dir);
  }
}

Then add this to the bottom of your ~/.jedrc:

define startup_hook() {
  load_local_config(); % .jed.sl
}

Now, go into a directory where you want to make local settings, create a file called .jed.sl and fill it to your hearts content!

Comments

ëRiC
Whow! That looks pretty oldschool! O_o
But is it actually?

This indentation thing.. We agreed on tabs here. So everyone can have his own settings how wide the indentation should be. Actualy I think as this is a style-thing this should not be part of the code anyway. Code should always be shown and styled the way you want it at the frontend! But: most functional behind that on the backend side.

So for instance tabbed indentation could easily be shown as spaces in your editor as well. And when you press Ctrl+S it becomes tabs again in the file. That'd be cool.... *dream*...
Peter Bengtsson
It's strange some sometimes even senior respectable developers prefer tabs. I just don't see the benefit considering all the potential problems with it.
ëRiC
Well... no shit: I'd love to be enlightened by you what the problem with tabs is and the benefits of spaces! :D

On the other hand: wouldn't you agree that everybody should see it in the way he likes it? And in the code its like whatever is best for the code..
Peter Bengtsson
No I would not necessarily agree. End of flame war.
Thank you for posting a comment

Your email will never ever be published


Related posts

Previous:
Careful with your assertRaises() and inheritance of exceptions 10 April 2013
Next:
The Poincaré Conjecture 22 April 2013
Related by Keyword:
Find what indentation your files use 07 July 2015
Wing IDE versus Jed 11 December 2008
Geeking with tags file for Jed 29 May 2006
Jed Tags with ntags (for dummies) 11 February 2006
Geeking with Eterm and Tkinter 09 February 2006
Related by Text:
Jed looking like Emacs 28 September 2005
Strange socket related error with supervisord 05 April 2011
"No space left on device" on OSX Docker 03 October 2017
Jed Tags with ntags (for dummies) 11 February 2006
Geeking with tags file for Jed 29 May 2006