Create a new SourceCompletionContext for completion. The position at which the completion using
the new context will consider completion can be provider by position. If position is Nothing, the
current cursor position will be used.

Block interactive completion. This can be used to disable interactive completion when inserting or
deleting text from the buffer associated with the completion. Use
sourceCompletionUnblockInteractive to enable interactive completion again.