-(defun company-semantic--pre-prefix-length (prefix-length)
- "Sum up the length of all chained symbols before POS.
-Symbols are chained by \".\" or \"->\"."
- (save-excursion
- (let ((pos (point)))
- (goto-char (- (point) prefix-length))
- (while (looking-back "->\\|\\." (- (point) 2))
- (goto-char (match-beginning 0))
- (skip-syntax-backward "w_"))
- (- pos (point)))))
-
-(defun company-semantic--grab ()
- "Grab the semantic prefix, but return everything before -> or . as length."
- (let ((symbol (company-grab-symbol)))
- (when symbol
- (cons symbol (company-semantic--pre-prefix-length (length symbol))))))
+(defun company-semantic--prefix ()
+ (if company-semantic-begin-after-member-access
+ (company-grab-symbol-cons "\\.\\|->\\|::" 2)
+ (company-grab-symbol)))