Local jed settings

19 April 2013   4 comments   Linux, MacOSX

Mind That Age!

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

(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.

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:
jQuery and Highslide JS 08 January 2008
I'm back! Peterbe.com has been renewed 05 June 2005
Anti-McCain propaganda videos 12 August 2008
Ever wondered how much $87 Billion is? 04 November 2003
Guake, not Yakuake or Yeahconsole 23 January 2010