package ecaml

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

Support for detecting something at point---a filename, URL, what-have-you.

type t =
  1. | Defun
  2. | Email
  3. | Filename
  4. | Line
  5. | List
  6. | Number
    (*

    Any other "thing" supported by thing-at-point. Use defthing to register a new thing type.

    *)
  7. | Other of Symbol.t
  8. | Page
  9. | Sentence
  10. | Sexp
    (*

    Any string containing only characters in chars, which is a regexp character alternative (i.e. a string that would go between square brackets in a regexp).

    *)
  11. | String_of of {
    1. chars : string;
    }
  12. | Symbol
  13. | Url
  14. | Whitespace
  15. | Word
val sexp_of_t : t -> Ppx_sexp_conv_lib.Sexp.t
val find : ?text_properties:bool -> t -> Text.t option

Find the given kind of thing at point, if any. If text_properties is false, text properties are stripped from the returned string.

(describe-function 'thing-at-point)

val forward : ?n:int -> t -> bool

(describe-function 'forward-thing)

NOTE: Many thing types, including Other and several built-in types, don't support forward.

val bounds : t -> (Position.t * Position.t) option

(describe-function 'bounds-of-thing-at-point)

val beginning_exn : t -> unit

(describe-function 'beginning-of-thing)

val beginning : t -> bool

beginning tries beginning_exn and returns false if it would have raised.

val end_exn : t -> unit

(describe-function 'end-of-thing)

val end_ : t -> bool

end_ tries end_exn and returns false if it would have raised.

val defthing : Symbol.t -> Core_kernel.Source_code_position.t -> bounds:(unit -> (Position.t * Position.t) option) -> t

Define symbol as a "thing" so that Other symbol works as the argument to find, etc (but not forward). The effect is to define a property of the symbol; so long as that property isn't otherwise used, the symbol can be used for other purposes as well.