racket/collects/scribblings/drracket/files.scrbl
Eli Barzilay debd1f9f1e Recketizing much in `net/*', mass ".ss" -> ".rkt" conversion in .scrbl files.
(Some other minor things here and there.)
2011-06-20 04:27:14 -04:00

133 lines
5.1 KiB
Racket

#lang scribble/doc
@(require "common.rkt")
@title[#:tag "drracket-files"]{DrRacket Files}
@; ----------------------------------------
@section[#:tag "drracket-file-formats"]{Program Files}
The standard @as-index{file extension} for a Racket program file is
@indexed-file{.rkt}. The extensions @indexed-file{.ss},
@indexed-file{.scm}, and @indexed-file{.sch} are also historically
popular.
DrRacket's editor can save a program file in two different formats:
@itemize[
@item{@deftech{Plain-text file format} --- All text editors can read
this format. DrRacket saves a program in plain-text format by
default, unless the program contains images or text boxes.
(Plain-text format does not preserve images or text boxes.)
Plain-text format is platform-specific because different
platforms have different newline conventions. However, most
tools for moving files across platforms support a ``text''
transfer mode that adjusts newlines correctly.}
@item{@deftech{Multimedia file format} --- This format is specific to
DrRacket, and no other editor recognizes it. DrRacket saves a
program in multimedia format by default when the program
contains images, text boxes, or formatted text.
Multimedia format is platform-independent, and it uses an ASCII
encoding (so that different ways of transferring the file are
unlikely to corrupt the file).}
]
@; ----------------------------------------
@section[#:tag "drracket-autosave-files"]{Backup and Autosave Files}
When you modify an existing file in DrRacket and save it, DrRacket
copies the old version of the file to a special backup file if no
backup file exists. The backup file is saved in the same directory as
the original file, and the backup file's name is generated from the
original file's name:
@itemize[
@item{On Unix and Mac OS X, a @filepath{~} is added to the end of
the file's name.}
@item{On Windows, the file's extension is replaced with
@filepath{.bak}.}
]
Every five minutes, DrRacket checks each open file. If any file is
modified and not saved, DrRacket saves the file to a special autosave
file (just in case there is a power failure or some other catastrophic
error). If the file is later saved, or if the user exists DrRacket
without saving the file, the autosave file is removed. The autosave
file is saved in the same directory as the original file, and the
autosave file's name is generated from the original file's name:
@itemize[
@item{On Unix and Mac OS X, a @filepath{#} is added to the start
and end of the file's name, then a number is added after the
ending @filepath{#}, and then one more @filepath{#} is appended
after the number. The number is selected to make the autosave
filename unique.}
@item{On Windows, the file's extension is replaced with a number
to make the autosave filename unique.}
]
If the definitions window is modified and there is no current file,
then an autosave file is written to the user's ``documents''
directory. @margin-note{The ``documents'' directory is determined by
@racket[(find-system-path 'doc-dir)].}
@; ----------------------------------------
@section{Preference Files}
On start-up, DrRacket reads configuration information from a
preferences file. The name and location of the preferences file
depends on the platform and user:
@margin-note{The expression @racket[(find-system-path 'pref-file)]
returns the platform- and user-specific preference file path.}
@itemize[
@item{On Unix, preferences are stored in a
@indexed-file{.racket} subdirectory in the user's home
directory, in a file @indexed-file{racket-prefs.rktd}.}
@item{On Windows, preferences are stored in a file
@indexed-file{racket-prefs.rktd} in a sub-directory
@indexed-file{Racket} in the user's application-data folder as
specified by the Windows registry; the application-data folder is
usually @indexed-file{Application Data} in the user's profile
directory, and that directory is usually hidden in the Windows GUI.}
@item{On Mac OS X, preferences are stored in
@indexed-file{org.racket-lang.prefs.rktd} in the user's preferences
folder.}
]
A lock file is used while modifying the preferences file, and it is
created in the same directory as the preferences file. On Windows,
the lock file is named @indexed-file{_LOCKracket-prefs.rktd}; on Unix,
it is @indexed-file{.LOCK.racket-prefs.rktd}; on Mac OS X, it is
@indexed-file{.LOCK.org.racket-lang.prefs.rktd}.
If the user-specific preferences file does not exist, and the file
@indexed-file{racket-prefs.rktd} in the @filepath{defaults} collection
does exist, then it is used for the initial preference settings. (See
@secref[#:doc '(lib "scribblings/reference/reference.scrbl")
"collects"] for more information about collections.) This file thus
allows site-specific configuration for preference defaults. To set up
such a configuration, start DrRacket and configure the preferences to
your liking. Then, exit DrRacket and copy your preferences file into
the @filepath{defaults} collection as
@filepath{racket-prefs.rktd}. Afterward, users who have no preference
settings already will get the preference settings that you chose.