# Project templates

**URL:** https://forum.castle-engine.io/t/project-templates/1214
**Category:** Editor
**Created:** [May 27, 2024, 9:35am UTC](https://forum.castle-engine.io/t/project-templates/1214 "2024-05-27T09:35:52Z")
**Posts on this page:** 1
**Showing post:** 5

<div class="post-metadata">

### Author: ![NiunioMartinez](https://forum.castle-engine.io/user_avatar/forum.castle-engine.io/niuniomartinez/32/2232_2.png) [@NiunioMartinez](https://forum.castle-engine.io/u/NiunioMartinez)
#### Post date: [July 2, 2024, 6:07pm UTC](https://forum.castle-engine.io/t/project-templates/1214/5 "2024-07-02T18:07:47Z")

</div>

I didn’t thought about overriding stuff, because I like to use unit names to refer the one I want to use (that’s another example of “being verbose” and that).

By the way, maybe the most annoying thing I see is the indentation. Let me paste a little example of how I indent code:

```auto
unit ExampleUnit;
(* An example of how I do indentation in my code. You'll see some original
   things here, like how I align the comment blocks and other stuff.

   Pay attention to the next line!
 *)

interface

  uses
    sysutils, Classes,
    UnitUsed, AnotherOne, Blablablah;

  const
  (* This explains the next constant. *)
    ValueUsedSomewhere = 10;

(* Now, a procedure declaration. *)
  procedure RoutineThatDoesSomething (aParameter: Integer);

implementation

  uses
    StringUtils; { For example. }

  procedure RoutineThatDoesSomething (aParameter: Integer);
  begin
  { And here, we have some code (random, at the moment). }
    if aParameter < 10 then
      WriteLne ('The value is small.');
  { I think you get the idea.

    By the way, I want to show some extreme cases because maybe you find
    them interesting.
  }
    CallingWithLotOfParameters
    (
      'A value here',
      ValueThere,
      123123123,
      YabadbaDoo
    );
    if (VeryLargeName <> AnEvenLargerNameThanTheOther)
    and (VeryLargeName <> AnotherThing)
    then
    begin
      Blabla := aParameter;
      CallSomething (aParameter + 1)
    end
  end;

end.

```

I don’t know how do you see it. I understand that it adds more indentation but I find it more easy to read than most of other’s code I’ve seen out there; specially the long routine call and the long if statement are quite easy to find the ending. Note that I use Vim mostly and it is a bit uncomfortable with long lines; I tend to use up to 80 character lines but I exceed that limit sometimes when I feel it.

---

_[View the full topic](https://forum.castle-engine.io/t/project-templates/1214)._
