Page 1 of 1 1
Topic Options
#120987 - 2004-06-10 02:19 AM Very good open source IDE for KiXtart
georger Offline
Lurker

Registered: 2004-06-10
Posts: 1
Loc: Brazil
Large post, but I'm sure many of you will find it handy.
Hi,
I'm new no KiXtart. In fact, I've only been using it since last Friday, but as a seasoned batch/login script and VB programmer, it was very easy for me to learn KiXtart - not to mention it's so well-done, almost everything you could wish for is built right in. I had already heard about it and also read a bit, but never quite took the time to learn it. Talk about being sorry - I've had several scenarios in the past that I solved without KiX, just to see now that I could have solved them so much more easily with KiX! But let's get to business.
As a guy who already programmed in several high-level languages, with great IDEs, debuggers, profilers and the like, I really couldn't stand writing my KiX scripts using Notepad or EDIT. I simply KNEW there had to be a better way. I browsed around and only found commercial editors, some looked really good, but all I wanted to do was to write KiX scripts, and wasn't really willing to shell out more than $30 to be able to do it the way I like - with syntax highlighting, automatic indentation, advanced editing and the like - and really didn't care about other functionalities.
After a lot of research, I found this litlle gem of an editor called Scintilla Text Editor, os SciTE for short. It's open-source, free and of very high quality. Talk about cool! I run it alongside a command prompt and get great results. It really sped up my development - I wrote more code today than I did since last Friday, and my KiX logon script now weighs in 659 lines of code (the first 158 are Jens Meyer's IsInSubnet function - great work!).
You can find Scintilla here.
It's pretty raw when you first install it, but after you customize its Global Options File and kix.properties file, it's KiX heaven.
As I have clients in several subnets, I also found it useful to compress my KiX program files (and several other programs) with UPX (get it here).
I pasted my files below for your perusal. I'm sure many of you will love Scintilla!

SciTEGlobal.properties
# Global initialisation file for SciTE
# For Linux, place in $prefix/share/scite
# For Windows, place in same directory as SciTE.EXE (or Sc1.EXE)
# Documentation at http://www.scintilla.org/SciTEDoc.html

# Globals

# Window sizes and visibility
#if PLAT_WIN
# position.left=0
# position.top=0
#if PLAT_GTK
# position.left=5
# position.top=22
#position.width=576
#position.height=740
position.tile=1
#full.screen.hides.menu=1
#minimize.to.tray=1
split.vertical=1
#output.horizontal.size=200
#output.vertical.size=60
#horizontal.scrollbar=0
#horizontal.scroll.width=10000
#output.horizontal.scrollbar=0
#output.horizontal.scroll.width=10000
#output.scroll=0
#end.at.last.line=0
tabbar.visible=1
tabbar.hide.one=1
tabbar.multiline=1
toolbar.visible=1
#undo.redo.lazy=1
statusbar.visible=1
#fileselector.width=800
#fileselector.height=600
#magnification=-1
#output.magnification=-1

# Sizes and visibility in edit pane
line.margin.visible=1
line.margin.width=3+
margin.width=16
#fold.margin.width=16
#fold.margin.colour=#FF0000
#fold.margin.highlight.colour=#0000FF
#blank.margin.left=4
#blank.margin.right=4
buffered.draw=1
#two.phase.draw=0
use.palette=0

# Element styles
#view.eol=1
#control.char.symbol=.
caret.period=500
view.whitespace=0
view.indentation.whitespace=1
view.indentation.guides=1
highlight.indentation.guides=1
#caret.fore=#FF0000
#caret.width=2
#caret.line.back=#FFFED8
#calltip.back=#FFF0FE
edge.column=200
edge.mode=0
edge.colour=#C0DCC0
braces.check=1
braces.sloppy=1
#selection.fore=#006000
# DADADA used as background because it yields standard silver C0C0C0
# on low colour displays and a reasonable light grey on higher bit depths
selection.back=#DADADA
#whitespace.fore=#FF0000
#whitespace.back=#FFF0F0
#error.marker.fore=#0000A0
#error.marker.back=#DADAFF
#bookmark.fore=#808000
#bookmark.back=#FFFFA0
#use.monospaced=1

# Checking
are.you.sure=1
#are.you.sure.for.build=1
#quit.on.close.last=1
#load.on.activate=1
#save.on.deactivate=1
#are.you.sure.on.reload=1
#reload.preserves.undo=1
#check.if.already.open=1
default.file.ext=.kix
title.full.path=1
title.show.buffers=1
save.recent=1
#save.session=1
open.dialog.in.file.directory=1
#strip.trailing.spaces=1
#ensure.final.line.end=1
#ensure.consistent.line.ends=1
#save.deletes.first=1
buffers=10
#api.*.cxx=d:\api\w.api
#win95.death.delay=1000
#translation.missing=***
#read.only=1

# Indentation
tabsize=4
indent.size=4
use.tabs=1
indent.automatic=1
indent.opening=0
indent.closing=0
#tab.indents=0
#backspace.unindents=0

# Wrapping of long lines
#wrap=1
#cache.layout=3
#output.wrap=1
#output.cache.layout=3
#wrap.visual.flags=3
#wrap.visual.flags.location=3
#wrap.visual.startindent=4

# Folding
# enable folding, and show lines below when collapsed.
fold=1
fold.compact=1
fold.flags=16
fold.symbols=1
#fold.on.open=1

# Find and Replace
#escapes.in.find.replace=1
# findstr is available on recent versions of Windows including 2000
if PLAT_WIN
find.command=findstr /n /s $(find.what) $(find.files)
#find.input=$(find.what)
if PLAT_GTK
find.command=grep --line-number "$(find.what)" $(find.files)
find.files=*.c *.cxx *.h
#find.replace.matchcase=1
#find.replace.escapes=1
#find.replace.regexp=1
#find.replace.regexp.posix=1
#find.replace.wrap=0
#find.replacewith.focus=0

# Behaviour
#eol.mode=LF
eol.auto=1
clear.before.execute=0
#vc.home.key=1
#wrap.aware.home.end.keys=1
#autocompleteword.automatic=1
#autocomplete.choose.single=1
caret.policy.xslop=1
caret.policy.width=20
caret.policy.xstrict=0
caret.policy.xeven=0
caret.policy.xjumps=0
caret.policy.yslop=1
caret.policy.lines=1
caret.policy.ystrict=1
caret.policy.yeven=1
caret.policy.yjumps=0
#visible.policy.strict=1
#visible.policy.slop=1
#visible.policy.lines=4
#time.commands=1

# Status Bar
statusbar.number=4
statusbar.text.1=\
li=$(LineNumber) co=$(ColumnNumber) $(OverType) ($(EOLMode)) $(FileAttr)
statusbar.text.2=\
$(BufferLength) chars in $(NbOfLines) lines. Sel: $(SelLength) chars.
statusbar.text.3=\
Now is: Date=$(CurrentDate) Time=$(CurrentTime)
statusbar.text.4=\
$(FileNameExt) : $(FileDate) — $(FileTime) | $(FileAttr)

if PLAT_WIN
command.scite.help="file://$(SciteDefaultHome)\SciTEDoc.html"
command.scite.help.subsystem=2
if PLAT_GTK
command.print.*=a2ps "$(FileNameExt)"
command.scite.help=netscape "file://$(SciteDefaultHome)/SciTEDoc.html"

# Internationalisation
# Japanese input code page 932 and ShiftJIS character set 128
#code.page=932
#character.set=128
# Unicode
#code.page=65001
code.page=0
#character.set=204
# Required for Unicode to work on GTK+:
#LC_CTYPE=en_US.UTF-8

# Export
#export.keep.ext=1
export.html.wysiwyg=1
#export.html.tabs=1
#export.html.folding=1
export.html.styleused=1
#export.html.title.fullpath=1
#export.rtf.tabs=1
#export.rtf.font.face=Arial
#export.rtf.font.size=9
#export.rtf.tabsize=8
# Magnification (added to default screen font size)
export.pdf.magnification=0
# Font: Courier, Helvetica or Times (Courier line-wraps)
export.pdf.font=Helvetica
# Page size (in points): width, height
# E.g. Letter 612,792; A4 595,842; maximum 14400,14400
export.pdf.pagesize=595,842
# Margins (in points): left, right, top, bottom
export.pdf.margins=72,72,72,72
export.xml.collapse.spaces=1
export.xml.collapse.lines=1

# Define values for use in the imported properties files
chars.alpha=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
chars.numeric=0123456789
chars.accented=ŠšŒœŸÿÀàÁáÂâÃãÄäÅ寿ÇçÈèÉéÊêËëÌìÍíÎîÏïÐðÑñÒòÓóÔôÕõÖØøÙùÚúÛûÜüÝýÞþßö
# This is a better set for Russian:
#chars.accented=ÀàÁáÂâÃãÄäÅå¨¸ÆæÇçÈèÉéÊêËëÌìÍíÎîÏïÐðÑñÒòÓóÔôÕõÖö×÷ØøÙùÚúÛûÜüÝýÞþßÿ

# The open.filter setting is only used on Windows where the file selector has a menu of filters to apply
# to the types of files seen when opening.
# There is a limit (possibly 256 characters) to the length of a filter,
# so not all source extensions can be in this setting.
source.files=*.asm;*.c;*.cc;*.cpp;*.cxx;*.cs;*.h;*.hh;*.hxx;*.hpp;\
*.idl;*.odl;*.rc;*.rc2;*.dlg;*.def;\
*.vb;*.vbs;*.bas;*.frm;*.cls;*.ctl;\
*.java;*.js;*.py;*.pl;*.rb;*.cgi;*.kix;*.conf;\
make*;*.mak;\
*.properties;*.html;*.xml;*.iface;*.bat;*.e

if PLAT_WIN
all.files=All Files (*.*)|*.*|
if PLAT_GTK
all.files=All Files (*)|*|Hidden Files (.*)|.*|
open.filter=\
All Source|$(source.files)|\
$(all.files)\
#$(filter.ada)\
$(filter.conf)\
$(filter.asm)\
#$(filter.ave)\
$(filter.baan)\
$(filter.bash)\
$(filter.cpp)\
$(filter.css)\
#$(filter.eiffel)\
#$(filter.erlang)\
#$(filter.fortran)\
$(filter.idl)\
$(filter.java)\
$(filter.js)\
$(filter.kix)\
#$(filter.lout)\
#$(filter.lua)\
#$(filter.matlab)\
#$(filter.metapost)\
#$(filter.mmixal)\
$(filter.nncrontab)\
#$(filter.nsis)\
$(filter.pascal)\
$(filter.perl)\
$(filter.php)\
#$(filter.pov)\
$(filter.properties)\
$(filter.ps)\
$(filter.python)\
#$(filter.ruby)\
$(filter.sql)\
#$(filter.specman)\
#$(filter.tcl)\
$(filter.tex)\
$(filter.text)\
$(filter.vb)\
$(filter.web)\
#$(filter.yaml)\
#$(filter.verilog)

# Give symbolic names to the set of fonts used in the standard styles.
if PLAT_WIN
font.base=font:Lucida Console,size:10
font.small=font:Lucida Console,size:8
font.comment=font:Courier New,size:10
font.code.comment.box=$(font.comment)
font.code.comment.line=$(font.comment)
font.code.comment.doc=$(font.comment)
font.text=font:Times New Roman,size:10
font.text.comment=font:Verdana,size:10
font.embedded.base=font:Verdana,size:10
font.embedded.comment=font:Comic Sans MS,size:9
font.monospace=font:Courier New,size:10
font.vbs=font:Lucida Sans Unicode,size:10
if PLAT_GTK
font.base=font:lucidatypewriter,size:12
font.small=font:lucidatypewriter,size:10
font.comment=font:new century schoolbook,size:12
font.code.comment.box=$(font.comment)
font.code.comment.line=$(font.comment)
font.code.comment.doc=$(font.comment)
font.text=font:times,size:14
font.text.comment=font:lucidatypewriter,size:10
font.embedded.base=font:lucidatypewriter,size:12
font.embedded.comment=font:lucidatypewriter,size:12
font.monospace=font:courier,size:12
font.vbs=font:new century schoolbook,size:12
font.js=$(font.comment)

# Give symbolic names to the set of colours used in the standard styles.
colour.code.comment.box=fore:#007F00
colour.code.comment.line=fore:#007F00
colour.code.comment.doc=fore:#3F703F
colour.text.comment=fore:#0000FF,back:#D0F0D0
colour.other.comment=fore:#007F00
colour.embedded.comment=back:#E0EEFF
colour.embedded.js=back:#F0F0FF
colour.notused=back:#FF0000

colour.number=fore:#007F7F
colour.keyword=fore:#00007F
colour.string=fore:#7F007F
colour.char=fore:#7F007F
colour.operator=fore:#000000
colour.preproc=fore:#7F7F00
colour.error=fore:#FFFF00,back:#FF0000

# Global default styles for all languages
# Default
style.*.32=$(font.base)
# Line number
style.*.33=back:#C0C0C0,$(font.base)
# Brace highlight
style.*.34=fore:#0000FF,bold
# Brace incomplete highlight
style.*.35=fore:#FF0000,bold
# Control characters
style.*.36=
# Indentation guides
style.*.37=fore:#C0C0C0,back:#FFFFFF

# Printing - only works on Windows
if PLAT_WIN
#print.colour.mode=1
print.magnification=-1
# Setup: left, right, top, bottom margins, in local units:
# hundredths of millimeters or thousandths of inches
print.margins=1500,1000,1000,1500
# Header/footer:
# && = &; &p = current page
# &f = file name; &F = full path
# &d = file date; &D = current date
# &t = file time; &T = full time
print.header.format=$(FileNameExt) — Printed on $(CurrentDate), $(CurrentTime) — Page $(CurrentPage)
print.footer.format=$(FilePath) — File date: $(FileDate) — File time: $(FileTime)
# Header/footer style
print.header.style=font:Arial,size:12,bold
print.footer.style=font:Arial Narrow,size:10,italics

# Warnings - only works on Windows and needs to be pointed at files on machine
#if PLAT_WIN
# warning.findwrapped=100,E:\Windows\Media\SFX\Boing.wav
# warning.notfound=0,Effect.wav
# warning.wrongfile=0,Glass.wav
# warning.executeok=0,Fanfare.wav
# warning.executeko=100,GlassBreak.wav
# warning.nootherbookmark=100,Boing2.wav

# Define the Lexer menu,
# Each item contains three parts: menu string | file extension | key
# The only keys allowed currently are based on F-keys and alphabetic keys and look like
# [Ctrl+][Shift+][Fn|a] such as F12 or Ctrl+Shift+D.
# A '&' may be placed before a letter to be used as an accelerator. This does not work on GTK+.
menu.language=\
Text|txt|Shift+F11|\
#Ada|ads||\
Apache Confi&g|conf||\
Assembler|asm||\
#Avenue|ave||\
Baan|bc||\
&Batch|bat||\
#Bullant|ant||\
&C / C++|c||\
C&#|cs||\
CSS|css||\
&Difference|diff||\
#&Eiffel|e||\
#Erlang|erl||\
&Errorlist|err||\
#&Fortran|f90||\
H&ypertext|html|F12|\
&Java|java||\
Java&Script|js||\
&Kix|kix||\
TeX|tex||\
#Lisp|lisp||\
#Lot|lot||\
#Lout|lt||\
#Lu&a|lua||\
#Matlab|m.matlab||\
&Makefile|mak|Ctrl+Shift+F11|\
#MetaPost|mp||\
#MMIXAL|mms||\
#&nnCron crontab|tab||\
#NSIS|nsis||\
#Octave|m.octave||\
Pascal|pas||\
Pe&rl|pl||\
P&HP|php||\
P&LSQL|spec||\
&Properties|properties||\
P&ostScript|ps||\
#P&OV-Ray SDL|pov||\
Pytho&n|py||\
Reso&urce|rc||\
#Ruby|rb||\
Shell|sh||\
S&QL|sql||\
#Specman|e||\
#&TCL|tcl||\
&VB|vb||\
VBScr&ipt|vbs||\
#Verilog|v||\
&XML|xml|Shift+F12|\
#&YAML|yaml||


# User defined key commands
user.shortcuts=\
Ctrl+Shift+V|IDM_PASTEANDDOWN|\
Ctrl+PageUp|IDM_PREVFILE|\
Ctrl+PageDown|IDM_NEXTFILE|

#KeypadPlus|IDM_EXPAND|\
#KeypadMinus|IDM_BLOCK_COMMENT|

# Import all the language specific properties files
#import ada
import asm
#import au3
#import ave
import baan
#import bullant
import conf
import cpp
import css
#import eiffel
#import erlang
import escript
#import forth
#import fortran
import html
import kix
#import lisp
#import lot
#import lout
#import lua
#import matlab
#import metapost
#import mmixal
#import nncrontab
#import nsis
import others
import pascal
import perl
#import pov
import ps
import python
import ruby
#import scriptol
import sql
#import specman
#import tcl
#import tex
import vb
#import yaml
#import verilog

kix.properties
# Define SciTE settings for Assembler files
# Black Horus blackhorus@gmx.net

# Masm files
file.patterns.kix=*.kix
filter.kix=Kix-Script (kix)|$(file.patterns.kix)|

#lexer.$(file.patterns.kix)=asm
lexer.$(file.patterns.kix)=kix

# These keywords are commands
keywords.$(file.patterns.kix)=? and beep big break call cd cls color cookie1 copy \
debug del dim display do until exit flushkb for each next function endfunction \
get gets global go gosub goto if else endif md or password play quit \
rd redim return run select case endselect set setl setm settime \
shell sleep small use while loop

# This keywords are functions
keywords2.$(file.patterns.kix)=abs addkey addprinterconnection addprogramgroup \
addprogramitem asc ascan at backupeventlog box cdbl chr cint cleareventlog \
close comparefiletimes createobject cstr dectohex delkey delprinterconnection \
delprogramgroup delprogramitem deltree delvalue dir enumgroup enumipinfo enumkey \
enumlocalgroup enumvalue execute exist existkey expandenvironmentvars fix \
formatnumber freefilehandle getdiskspace getfileattr getfilesize getfiletime \
getfileversion getobject iif ingroup instr instrrev int isdeclared join \
kbhit keyexist lcase left len loadhive loadkey logevent logoff ltrim \
memorysize messagebox open readline readprofilestring readtype readvalue \
redirectoutput right rnd round rtrim savekey sendkeys sendmessage setascii \
setconsole setdefaultprinter setfileattr setfocus setoption setsystemstate \
settitle setwallpaper showprogramgroup shutdown sidtoname split srnd substr \
trim ubound ucase unloadhive val vartype vartypename writeline \
writeprofilestring writevalue

# This keywords are macros if preceeded by @
keywords3.$(file.patterns.kix)=address build color comment cpu crlf csd curdir \
date day domain dos error fullname homedir homedrive homeshr hostname \
inwin ipaddress0 ipaddress1 ipaddress2 ipaddress3 kix lanroot ldomain \
ldrive lm logonmode longhomedir lserver maxpwage mdayno mhz monthno \
month msecs pid primarygroup priv productsuite producttype pwage ras \
result rserver scriptdir scriptexe scriptname serror sid site startdir \
syslang ticks time userid userlang wdayno wksta wuserid ydayno year

# Comments
comment.block.kix=;
comment.block.at.line.start.kix=1

# Kix Styles
# White space
style.kix.0=fore:#000000,$(font.vbs)
# Comment
style.kix.1=$(colour.code.comment.line),$(font.code.comment.line)
# String
style.kix.2=$(colour.string)
style.kix.3=$(colour.string)
# Number
style.kix.4=$(colour.number)
# Variables
style.kix.5=fore:#B00040
# Macro
style.kix.6=$(colour.preproc)
# Keyword
style.kix.7=$(colour.keyword),bold
# Function
style.kix.8=$(colour.keyword)
# Operator
style.kix.9=$(colour.operator),bold

# Commands
command.go.*.kix=kix32 $(FileName)

# Indenting
tab.size.$(file.patterns.kix)=4
indent.size.$(file.patterns.kix)=4
use.tabs.$(file.patterns.kix)=1

statement.indent.$(file.patterns.kix)=7 if else for do while function case
statement.end.$(file.patterns.kix)=7 endif next until loop endfunction endselect

Top
#120988 - 2004-06-10 02:53 PM Re: Very good open source IDE for KiXtart
Kdyer Offline
KiX Supporter
*****

Registered: 2001-01-03
Posts: 6241
Loc: Tigard, OR
While this seems pretty slick, there are a couple of limitations observed.

Took me a minute to figure out what was going on as I edited the .properties files outside the editor and it does not appear to like that. You need to edit these from the Options Menu.

We have talked about editors in the past.

For example - Can't decide what editor to use... Maybe this'll help

Now, on to the limitations:
  • Session - The editor does not remember where you were working (ok there is a save session)..
  • Find/Replace - Does not handle CR/LF.
  • Tools - Did not see a place to add KiXtart/KiXtart debug or a "custom" tool


It maybe open-source and you maybe able to get it to do these things, but out-of-the-box it does not.

Kent
_________________________
Utilize these resources:
UDFs (Full List)
KiXtart FAQ & How to's

Top
Page 1 of 1 1


Moderator:  Jochen, Allen, Radimus, Glenn Barnas, ShaneEP, Ruud van Velsen, Arend_, Mart 
Hop to:
Shout Box

Who's Online
1 registered (Henriques) and 2516 anonymous users online.
Newest Members
fgarcia, Viginette, ManuvdWielNL, Sir_Barrington, batdk82
17889 Registered Users

Generated in 0.053 seconds in which 0.027 seconds were spent on a total of 12 queries. Zlib compression enabled.

Search the board with:
superb Board Search
or try with google:
Google
Web kixtart.org