def send_at_position(self, what, useSelection, where="range"):
        """Ask the server to perform an operation on a range (sometimes named point)

        `what` is used as the prefix for the typehint.

        If `useSelection` is `False` the range is calculated based on the word under de
        cursor. Current selection start and end is used as the range otherwise.

        `where` defines the name of the property holding the range info within the request.
        Default value is 'range' but 'point' is sometimes used
        """
        self.log.debug('send_at_position: in')
        b, e = self.editor.selection_pos() if useSelection else self.editor.word_under_cursor_pos()
        self.log.debug('useSelection: {}, beg: {}, end: {}'.format(useSelection, b, e))
        beg = self.get_position(b[0], b[1])
        end = self.get_position(e[0], e[1])
        self.send_request(
            {"typehint": what + "AtPointReq",
             "file": self.editor.path(),
             where: {"from": beg, "to": end}})