Make SciTE work like Dark Room or Write Room

Comment

Geekery

I have created a properties file for SciTE that makes it work just like Write Room or Dark Room, but it’s cross platform and fast! Plus, if you start a paragraph with a tab, the entire paragraph is indented even if there is wordwrap turned on!!

Set this as your user.properties or global.properties script and press f11 to go fullscreen:


full.screen.hides.menu=1
minimize.to.tray=0
split.vertical=0
horizontal.scrollbar=0
error.select.line=1
tabbar.hide.one=1
#tabbar.multiline=0
toolbar.visible=0
#toolbar.detachable=1
#toolbar.usestockicons=1
#menubar.detachable=1
#undo.redo.lazy=1
statusbar.visible=0
#fileselector.width=800
#fileselector.height=600
#magnification=-1
#output.magnification=-1

# Sizes and visibility in edit pane
line.margin.visible=0
#line.margin.width=40
#margin.width=100
fold.margin.visible=0
fold.margin.width=10
fold.margin.colour=#000000
fold.margin.highlight.colour=#000000
blank.margin.left=100
blank.margin.right=100
buffered.draw=1
two.phase.draw=1
use.palette=0

# Element styles
#view.eol=1
#control.char.symbol=.
caret.period=000
view.whitespace=0
view.indentation.whitespace=0
view.indentation.guides=0
highlight.indentation.guides=0
view.fold.margin=0
caret.fore=#FF0000
caret.width=3
caret.line.back=#152520
#caret.line.back.alpha=90
#calltip.back=#FFF0FE
edge.column=0
edge.mode=0
#edge.colour=#F9F9F9
braces.check=1
braces.sloppy=1
selection.fore=#EEEEEE
# 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=#606060
#selection.alpha=30
#whitespace.fore=#FF0000
#whitespace.back=#FFF0F0
#error.marker.fore=#0000A0
#error.marker.back=#DADAFF
#bookmark.fore=#808000
#bookmark.back=#FFFFA0
#find.mark=#0000FF
#use.monospaced=1

# Checking
are.you.sure=1
#are.you.sure.for.build=1
#save.all.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=.txt
title.full.path=1
title.show.buffers=1
save.recent=1
save.session=1
save.position=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=5
buffers.zorder.switching=0
read.only=0
#max.file.size=1

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

# Wrapping of long lines
wrap=1
wrap.visual.flags=0
wrap.visual.flags.location=3
cache.layout=2
#output.wrap=1
#output.cache.layout=3
wrap.visual.startindent=0
wrap.indent.mode=1

# Folding
# enable folding, and show lines below when collapsed.
fold=1
fold.compact=1
fold.flags=16
fold.symbols=3
fold.on.open=0
fold.comment=1
fold.preprocessor=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=
#find.in.files.close.on.find=0
#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
find.replace.advanced=1

# Behaviour
eol.mode=LF
eol.auto=1
clear.before.execute=1
#vc.home.key=1
wrap.aware.home.end.keys=1
autocompleteword.automatic=0
autocomplete.choose.single=0
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
#caret.sticky=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)\Scite4AutoIt3.chm"
command.scite.help.shortcut=Ctrl+F1
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
#character.set=204

# Required for Unicode to work on GTK+:
LC_CTYPE=en_US.UTF-8
output.code.page=65001

# 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=612,792
# 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;*.au3;*.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;*.lua;*.conf;\
make*;*.mak;*.txt;\
*.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.files)\
All Source|$(source.files)|


# FONT SETTINGS
# Give symbolic names to the set of fonts used in the standard styles.
if PLAT_WIN
font.base=font:Segoe UI,size:12,$(font.override),back:#000000,fore:#99cc99
font.small=font:Verdana,size:9,$(font.override)
font.comment=font:Calibri,size:10,$(font.override)
font.code.comment.box=$(font.comment),$(font.override)
font.code.comment.line=$(font.comment),$(font.override)
font.code.comment.doc=$(font.comment),$(font.override)
font.text=font:Verdana,size:10,$(font.override)
font.text.comment=font:Verdana,size:10,$(font.override)
font.embedded.base=font:Verdana,size:10,$(font.override)
font.embedded.comment=font:Calibri,size:10,$(font.override)
font.vbs=font:Lucida Sans Unicode,size:10,$(font.override)
font.monospace=font:Consolas,size:10
#  font.override=$(font.monospace)
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:#009F00,back:#FEFEFE
colour.code.comment.line=fore:#009F00,back:#FEFEFE
colour.code.comment.doc=fore:#3F703F,back:#FEFEFE
colour.text.comment=fore:#0000FF,back:#D0F0D0
colour.text.comment=fore:#0000FF,back:#D0F0D0
colour.constant=fore:#607F00,back:#FEFEFE
colour.embedded.comment=back:#E0EEFF
colour.embedded.js=back:#F3F3F3
colour.notused=back:#FF0000

colour.number=fore:#007F7F
colour.keyword=fore:#00008F
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=fore:#ffffff,back:#000000,$(font.base)
# Brace highlight
style.*.34=fore:#FF0000,bold,back:#0000A0
# Brace incomplete highlight
style.*.35=fore::#009933,bold
# Control characters
style.*.36=
# Indentation guides
style.*.37=fore:#C0C0C0,back:#FFFFFF

# Printing - only works on Windows
if PLAT_WIN
print.colour.mode=2
print.magnification=-3
# Setup: left, right, top, bottom margins, in local units:
# hundredths of millimeters or thousandths of inches
print.margins=700,500,500,500
# 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||\
#AutoIt3|au3|Shift+F12|\
#Apache Confi&g|conf||\
#Assembler|asm||\
#ASN.1|asn1||\
#Avenue|ave||\
#Baan|bc||\
#&Batch|bat||\
#Bullant|ant||\
#&C / C++|cpp||\
#C&#|cs||\
#Csound|orc||\
#CSS|css||\
#&Difference|diff||\
#&Eiffel|e||\
#Erlang|erl||\
#&Errorlist|err||\
#FlagShip|prg||\
#&Fortran|f90||\
#H&ypertext|html||\
#&Java|java||\
#Java&Script|js||\
#&Kix|kix||\
#TeX|tex||\
#Lisp|lisp||\
#Lot|lot||\
#Lout|lt||\
#Lu&a|lua||\
#Matlab|m.matlab||\
#&Makefile|mak||\
#MetaPost|mp||\
#MMIXAL|mms||\
#&nnCron crontab|tab||\
#NSIS|nsis||\
#Objective Caml|ml||\
#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||\
#VHDL|vhd||\
#&XML|xml||\
#&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|\
Ctrl+F1|IDM_HELP_SCITE|

ext.lua.startup.script=wordcount.lua
command.name.1.*=Word Count
command.1.*=WordCount
;command.1.*=dofile c:\bin\editors\sci_room\wordcount.lua
command.subsystem.1.*=3
command.mode.1.*=savebefore:no
command.shortcut.1.*=Ctrl+i

command.name.2.*=Run Document as Lua Extension
command.2.*=dostring dostring(editor:GetText())
command.subsystem.2.*=3
command.mode.2.*=savebefore:no

# Import all the language specific properties files
import others

Leave a Reply

Your email address will not be published. Required fields are marked *