AminetAminet
Search:
84782 packages online
About
Recent
Browse
Search
Upload
Setup
Services

text/edit/Smartindent.lha

Mirror:Random
Showing: m68k-amigaos icongeneric icon
No screenshot available
Short:GoldED4 online code indention V37.6
Author: mshopf at informatik.uni-erlangen.de (Matthias Hopf)
Uploader:mshopf informatik uni-erlangen de (Matthias Hopf)
Type:text/edit
Version:37.6 beta
Architecture:m68k-amigaos
Date:1997-12-16
Download:text/edit/Smartindent.lha - View contents
Readme:text/edit/Smartindent.readme
Downloads:487

COPYIGHT

  ©1997 Matthias Hopf. All rights reserved.

  Some routines are based partially on the public domain CLib package from
  Andreas R. Kleinert. Thanx!


DISTRIBUTION

  This package is distributed as FreeWare under the GNU license.


DESCRIPTION

  This is an API client for GoldED 4 that will scan all entered text and
  indent it according to its built-in rules. The scanner is quite versatile
  and will also report several types of syntax errors.

  Scanning will be done automatically when you press keys that could have
  implications on the indentation of the current line. There is a new
  ARexx command 'SMARTINDENT', too, with which you can explicitely start
  the intendation process.

  By default the installation script will map for the C-source filetype TAB
  to 'SMARTINDENT LINE', alt-TAB to 'SMARTINDENT BLOCK', shift-TAB and
  ctrl-TAB to 'TAB' and shift-ctrl-TAB to 'BACKTAB', so you don't lose the
  tabulator availability.

  Please note that the installer script does not yet create a
  'smartindenting' Lisp source filetype. You will have to create it by hand.
  I suggest a filename pattern like "(#?.scm|#?.lisp|#?Install#?)".

  Source code is provided and almost cleaned up. I would love to add more
  indentation semantic parsers for other languages :^) If you like to create
  your own semantic parser, start with semantics_lisp.c - it is much simpler
  than the c-source semantics parser... Information about the used macros
  is provided in semantics.h, about the helper functions in util.h.

  ToDo: Still does some intentions not as I would like it to, but it's
	getting better. Better documentation needed. Configuration GUI
	(showing indentation of example source) needed.


CURRENTLY KNOWN INDENTION MODES

    C        (C and C++ source)
    Lisp     (Lisp and derivates, e.g. Installer scripts)


INSTALLATION

  Doubleclick at the installer script icon. It assumes that you already
  have the envCPP filetype package installed.

  For using Smartindent with Lisp source code you will at least have to
  create a Lisp GoldED type by hand and add Smartindent to the api
  configuration (arguments 'MODE Lisp'). Best configure TAB to invoke
  'SMARTINDENT LINE' as well.


SYNTAX:

  API startup arguments:

    Template: MODE/K,DEBUG/N/K,CONFIG/M/N/K

      MODE:   Indention mode. When this argument is not specified or the
	      given mode is unknown, a list of all known indention modes
	      is shown in a requester.

      DEBUG:  One nummeric argument that specifies the debug level
	      (see util.h for more information)

      CONFIG: Currently 7 (or less) integer values that specify
	      (in this order):

      - C-code Example:

      if (x)
      ....x = x+1;         - Block indentation level   (default 4)
      switch (x)
      ..{                  - Brace indentation level   (default 0, here: 2)
	  x = x + 1;
<-      case 1:            - Label indentation level   (default -2)
	  long int
	  ..value;         - Continued statement level (default 2)
	  value =
		 .0;       - Continued equation level  (default 1)

	  ..../* xx */     - Standard comment level    (default 4)

	  x=0;..../* x */  - (Absolute) in-line comment level (default 40)


      - Lisp-code Example:

      (
      ...function          - Block indentation level   (default: 1, here: 3)

			   - Brace indentation level   (currently unused)
			   - Label indentation level   (currently unused)
			   - Continued statement level (currently unused)
      (function
	       ...arg      - Continued equation level  (default 1, here: 3)

      ....; xx             - Standard comment level    (default 4)

      (xxx)....; x         - (Absolute) in-line comment level (default 40)



  'SMARTINDENT' command arguments:

    Template: LINE/S,LASTLINE/S,CURSOR/S,BLOCK/S

      LINE:      Indent current line
      LASTLINE:  Indent the line one above the current line
      CURSOR:    Move cursor to last indentation position in this line
      BLOCK:     Indent marked block


BUGS

  Yes, there are some bugs left, but only according to wrong indented
  lines. So far smartindent V37.6 has not crashed my Amiga at all.
  Read the comment at the beginning of test_input.c and test_correct.c for
  more details.


HISTORY

  V37.6 beta
	- Some more indention bug fixes:
	  lines 164 166 178 181 198 of test_input.c are correct now.
	- Added 'Lisp' indention mode (e.g. for Installer scripts)
	- Corrected c semantics to more correctly interprete C++ code
	  (bug-report: Henning Tietgens, thanx!)
	- Comments are no longer nested (bug-report: Marty King, thanx!)
	- Configuration is now window-dependend and no longer global
	- Some small other fixes

  V37.5 beta
	- Some more indention bug fixes.
	- Bug fix in endless loop detection.
	- Indenting code less often on pressing '/' or '*' now
	  (only when necessary for comment indention).
	- Finally implemented routine dispatcher needed for multiple
	  indention modes.

  V37.4 beta
	- Some indention bug fixes. Should recognize all C++ words now.

  V37.3 beta
	- Loads of bug fixes, one even potentially harmfull
	- 'test' smakefile target and test_input.c testing source file for
	  checking indention abilities.

  V37.2 beta2
	- Version information bug fixed. Installer should install the
	  API-client correctly now.
	- Installer script reworked.
	- New regedit for installation process provided. Thanx Dietmar!

  V37.2 beta
	- First release.


Contents of text/edit/Smartindent.lha
 PERMSSN    UID  GID    PACKED    SIZE  RATIO     CRC       STAMP          NAME
---------- ----------- ------- ------- ------ ---------- ------------ -------------
[generic]                  595    1233  48.3% -lh5- c36e Dec 14  1997 Smartindent.info
[generic]                12359   26760  46.2% -lh5- c9a6 Dec 14  1997 Smartindent/api/smartindent.api
[generic]                13517   25204  53.6% -lh5- 6eee Dec 14  1997 Smartindent/bin/regedit
[generic]                 7017   17996  39.0% -lh5- 191d Dec 14  1997 Smartindent/COPYING
[generic]                  436     856  50.9% -lh5- 5a4d Dec 14  1997 Smartindent/COPYING.info
[generic]                 1254    3348  37.5% -lh5- 3bd6 Dec 14  1997 Smartindent/Install
[generic]                 1227    1608  76.3% -lh5- 1b51 Dec 14  1997 Smartindent/Install.info
[generic]                  256     507  50.5% -lh5- 124c Dec 14  1997 Smartindent/Install_d.bat
[generic]                  256     507  50.5% -lh5- b2fc Dec 14  1997 Smartindent/Install_e.bat
[generic]                   78      97  80.4% -lh5- 56c1 Dec 14  1997 Smartindent/presets/c.api
[generic]                   64      64 100.0% -lh0- c977 Dec 14  1997 Smartindent/presets/c.indent
[generic]                  213     581  36.7% -lh5- 1084 Dec 14  1997 Smartindent/presets/c.keyboard
[generic]                  383    1527  25.1% -lh5- 7ae0 Dec 14  1997 Smartindent/presets/d/c.mouse
[generic]                  369    1501  24.6% -lh5- 0e66 Dec 14  1997 Smartindent/presets/e/c.mouse
[generic]                 2508    5655  44.4% -lh5- 54a0 Dec 14  1997 Smartindent/Smartindent.readme
[generic]                  440     856  51.4% -lh5- 0534 Dec 14  1997 Smartindent/Smartindent.readme.info
[generic]                  594    1233  48.2% -lh5- 8d75 Dec 14  1997 Smartindent/Source.info
[generic]                 1234    3811  32.4% -lh5- b619 Dec 14  1997 Smartindent/Source/compiler.h
[generic]                  490     856  57.2% -lh5- 8d0d Dec 14  1997 Smartindent/Source/compiler.h.info
[generic]                 2265    6340  35.7% -lh5- fdeb Dec 14  1997 Smartindent/Source/dispatcher.c
[generic]                  490     856  57.2% -lh5- 8d0d Dec 14  1997 Smartindent/Source/dispatcher.c.info
[generic]                  352     835  42.2% -lh5- a21c Dec 14  1997 Smartindent/Source/dispatcher.h
[generic]                  490     856  57.2% -lh5- 8d0d Dec 14  1997 Smartindent/Source/dispatcher.h.info
[generic]                 1439    3653  39.4% -lh5- cf74 Dec 14  1997 Smartindent/Source/LibFuncs.c
[generic]                  490     856  57.2% -lh5- 8d0d Dec 14  1997 Smartindent/Source/LibFuncs.c.info
[generic]                  341    1004  34.0% -lh5- a825 Dec 14  1997 Smartindent/Source/LibFuncs.h
[generic]                  490     856  57.2% -lh5- 8d0d Dec 14  1997 Smartindent/Source/LibFuncs.h.info
[generic]                 1333    3823  34.9% -lh5- ef05 Dec 14  1997 Smartindent/Source/LibInit.c
[generic]                  490     856  57.2% -lh5- 8d0d Dec 14  1997 Smartindent/Source/LibInit.c.info
[generic]                  170     266  63.9% -lh5- ce40 Dec 14  1997 Smartindent/Source/SCOPTIONS
[generic]                  434     856  50.7% -lh5- 9291 Dec 14  1997 Smartindent/Source/SCOPTIONS.info
[generic]                 1506    4189  36.0% -lh5- 9c48 Dec 14  1997 Smartindent/Source/semantics.h
[generic]                  490     856  57.2% -lh5- 8d0d Dec 14  1997 Smartindent/Source/semantics.h.info
[generic]                 4516   20308  22.2% -lh5- 489d Dec 14  1997 Smartindent/Source/semantics_c.c
[generic]                  490     856  57.2% -lh5- 8d0d Dec 14  1997 Smartindent/Source/semantics_c.c.info
[generic]                 1573    5302  29.7% -lh5- f944 Dec 14  1997 Smartindent/Source/semantics_lisp.c
[generic]                  490     856  57.2% -lh5- 8d0d Dec 14  1997 Smartindent/Source/semantics_lisp.c.info
[generic]                  936    2596  36.1% -lh5- 80a8 Dec 14  1997 Smartindent/Source/smakefile
[generic]                  434     856  50.7% -lh5- 9291 Dec 14  1997 Smartindent/Source/smakefile.info
[generic]                 1557    4170  37.3% -lh5- 6e8a Dec 14  1997 Smartindent/Source/smartindent.h
[generic]                  490     856  57.2% -lh5- 8d0d Dec 14  1997 Smartindent/Source/smartindent.h.info
[generic]                 1477    5085  29.0% -lh5- 02c4 Dec 14  1997 Smartindent/Source/StartUp.c
[generic]                  490     856  57.2% -lh5- 8d0d Dec 14  1997 Smartindent/Source/StartUp.c.info
[generic]                 2277    6506  35.0% -lh5- 5650 Dec 14  1997 Smartindent/Source/test_correct.c
[generic]                  490     856  57.2% -lh5- 8d0d Dec 14  1997 Smartindent/Source/test_correct.c.info
[generic]                  534    1172  45.6% -lh5- 7c6b Dec 14  1997 Smartindent/Source/test_correct.lisp
[generic]                  434     856  50.7% -lh5- 9291 Dec 14  1997 Smartindent/Source/test_correct.lisp.info
[generic]                 2261    5810  38.9% -lh5- 8e93 Dec 14  1997 Smartindent/Source/test_input.c
[generic]                  490     856  57.2% -lh5- 8d0d Dec 14  1997 Smartindent/Source/test_input.c.info
[generic]                  489     959  51.0% -lh5- 9ae4 Dec 14  1997 Smartindent/Source/test_input.lisp
[generic]                  434     856  50.7% -lh5- 05f9 Dec 14  1997 Smartindent/Source/test_input.lisp.info
[generic]                 4160   12673  32.8% -lh5- 65d3 Dec 14  1997 Smartindent/Source/util.c
[generic]                  490     856  57.2% -lh5- 8d0d Dec 14  1997 Smartindent/Source/util.c.info
[generic]                 1629    3628  44.9% -lh5- 21f6 Dec 14  1997 Smartindent/Source/util.h
[generic]                  490     856  57.2% -lh5- 8d0d Dec 14  1997 Smartindent/Source/util.h.info
---------- ----------- ------- ------- ------ ---------- ------------ -------------
 Total        55 files   80701  197927  40.8%            Dec 15  1997
Page generated in 0.02 seconds
Aminet © 1992-2024 Urban Müller and the Aminet team. Aminet contact address: <aminetaminet net>