home *** CD-ROM | disk | FTP | other *** search
/ Il CD di internet / CD.iso / SOURCE / AP / JED / JED097-1.TAR / jed / lib / tabs.sl < prev    next >
Encoding:
Text File  |  1994-12-12  |  1.5 KB  |  98 lines

  1. %%
  2. %%  Tab routines for JED
  3. %%
  4.  
  5.  
  6. !if (is_defined("Tab_Stops"))
  7. {
  8.    variable Tab_Stops;
  9.    Tab_Stops = create_array('i', 20, 1);
  10.    
  11.    %% The following defines the tab stops to be 8 column:
  12.    _for (0, 19, 1) 
  13.      { =$1; 
  14.     Tab_Stops[$1] = $1 * 8 + 1;
  15.      }
  16. }
  17.  
  18.   
  19. define tab_to_tab_stop ()
  20. {
  21.    variable c, goal, i;
  22.    c = what_column ();
  23.   
  24.    _for (0, 19, 1)
  25.      {
  26.     =i;
  27.     goal = Tab_Stops[i];
  28.     if (goal > c) break;
  29.      }
  30.    
  31.    insert_spaces (goal - c);
  32. }
  33.  
  34. setkey ("tab_to_tab_stop", "^I");
  35.  
  36. variable _Tabs_Buffer;
  37.  
  38. $1 = "*TabsEdit*";
  39. !if (keymap_p($1))
  40. {
  41.    make_keymap ($1);
  42.    undefinekey ("^C", $1);
  43.    definekey ("tabs_install_tab_stops", "^C^C", $1);
  44. }
  45.  
  46. %% emacs like edit tab stops
  47. define edit_tab_stops ()
  48. {
  49.    variable tbuf, i;
  50.    _Tabs_Buffer = whatbuf();
  51.    tbuf = "*TabsEdit*";
  52.  
  53.    sw2buf(tbuf); erase_buffer();
  54.    TAB = 0;
  55.       
  56.    use_keymap(tbuf);
  57.    _for (0, 19, 1) 
  58.      {
  59.     =i;
  60.     goto_column (Tab_Stops[i]);
  61.     insert ("T");
  62.      }
  63.    newline ();
  64.    _for (1, 13, 1)
  65.      {
  66.     =i;
  67.     goto_column (10 * i);
  68.     insert (string(i));
  69.      }
  70.    newline ();
  71.    
  72.    loop (13) insert ("1234567890");
  73.    
  74.    insert ("\nTo install changes, type control-c control-c.");
  75.    bob ();
  76.    set_buffer_modified_flag (0);
  77.    set_overwrite (1);
  78. }
  79.  
  80.  
  81. define tabs_install_tab_stops ()
  82. {
  83.    variable i;
  84.    bob ();
  85.    _for (0, 19, 1)
  86.      { =i;
  87.     skip_white ();
  88.     if (eolp()) break;
  89.     Tab_Stops[i] = what_column ();
  90.     go_right(1);
  91.      }
  92.    
  93.    _for (i, 19, 1) { =i; Tab_Stops[i] = 0;}
  94.    set_buffer_modified_flag (0);
  95.    delbuf (whatbuf ());
  96.    sw2buf ( _Tabs_Buffer);
  97. }
  98.