hsc3-0.20: Haskell SuperCollider
Safe HaskellSafe-Inferred
LanguageHaskell2010

Sound.Sc3.Common.Help

Description

Functions to access to the Sc3 Rtf & Html based help systems.

Synopsis

Rtf

sc3_rtf_help_dir :: IO FilePath Source #

Directory containing Sc3 Rtf help files.

sc3_rtf_find_file :: FilePath -> IO (Maybe FilePath) Source #

Find (case-insensitively) indicated file at sc3_rtf_help_dir. Runs the command "find -name" (so Unix only).

sc3_rtf_find_file "SinOsc.help.rtf"
sc3_rtf_find_file "lfsaw.help.rtf"
sc3_rtf_find_file "softClip.rtf"

sc3_rtf_to_scd :: FilePath -> FilePath -> IO () Source #

Run the command unrtf (so UNIX only) to convert an RTF file to a TEXT (.scd) file.

sc3_rtf_help_scd_open_emacs :: String -> IO () Source #

sc3_rtf_help_scd_open with emacsclient --no-wait.

sc3_rtf_help_scd_open_emacs "lfsaw"

Sc-Doc (Html)

sc3_scdoc_help_url :: String Source #

Url for online Sc-Doc SuperCollider documentation.

sc3_scdoc_help_dir :: IO String Source #

Read the environment variable SC3_SCDOC_HTML_HELP_DIR. The default value is ~/.local/share/SuperCollider/Help.

sc3_scdoc_help_class :: String -> String Source #

Path to indicated Sc3 class help file.

sc3_scdoc_help_class "SinOsc" == "Classes/SinOsc.html"

sc3_scdoc_help_operator :: String -> FilePath Source #

Generate path to indicated Sc3 operator help file.

sc3_scdoc_help_operator "+" == "Overviews/Operators.html#+"

sc3_scdoc_help_method :: Char -> (String, String) -> FilePath Source #

Generate path to indicated Sc3 method help.

sc3_scdoc_help_method '*' ("C","m") == "Classes/C.html#*m"

sc3_scdoc_help_class_method :: (String, String) -> FilePath Source #

Generate path to indicated Sc3 class method help.

sc3_scdoc_help_class_method ("C","m") == "Classes/C.html#*m"

sc3_scdoc_help_instance_method :: (String, String) -> FilePath Source #

Generate path to indicated Sc3 instance method help.

sc3_scdoc_help_instance_method ("C","m") == "Classes/C.html#-m"

sc3_scdoc_help_path :: String -> String Source #

Sc3 help path documenting x.

sc3_scdoc_help_path "Operator.distort" == "Overviews/Operators.html#.distort"
sc3_scdoc_help_path "Collection.*fill" == "Classes/Collection.html#*fill"
sc3_scdoc_help_path "Collection.inject" == "Classes/Collection.html#-inject"
sc3_scdoc_help_path "SinOsc" == "Classes/SinOsc.html"

sc3_scdoc_help_open :: Bool -> String -> IO () Source #

Open SC3 help path, either the local file or the online version. Use BROWSER or x-www-browser.

Base.System.get_env_default "BROWSER" "x-www-browser"
sc3_scdoc_help_open True (sc3_scdoc_help_path "SinOsc")
sc3_scdoc_help_open True (sc3_scdoc_help_path "Collection.*fill")
sc3_scdoc_help_open False (sc3_scdoc_help_path "Collection.inject")

sc3_scdoc_help_server_command_path :: String -> FilePath Source #

Generate path to indicated Sc3 instance method help. Adds initial forward slash if not present.

let r = "Reference/Server-Command-Reference.html#/b_alloc"
sc3_scdoc_help_server_command_path "b_alloc" == r

sc3_scdoc_help_server_command_open :: Bool -> String -> IO () Source #

sc3_scdoc_help_open of sc3_server_command_path

sc3_scdoc_help_server_command_open True "s_new"
sc3_scdoc_help_server_command_open False "/b_allocRead"

Fragments

on_lines_of :: ([String] -> [[String]]) -> String -> [String] Source #

Apply function at lines of string.

split_multiple_fragments :: [String] -> [[String]] Source #

Split text into fragments at empty lines. Hsc3 (and related projects) write help files as sets of distinct fragments. Fragments are separated by empty lines. A line containing the special character sequence ---- indicates the end of the fragments.

on_lines_of split_multiple_fragments ";a\nb\n\n\n;c\nd" == [";a\nb\n",";c\nd\n"]

drop_post_graph_section :: [String] -> [String] Source #

The text ---- indicates the end of graph fragments.

read_file_fragments :: FilePath -> IO [String] Source #

Read text fragments from file.

read_file_set_fragments :: [FilePath] -> IO [String] Source #

Read text fragments from set of files.