emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [elpa] 02/04: company-clang: handle multibyte chars between bol and


From: Dmitry Gutov
Subject: Re: [elpa] 02/04: company-clang: handle multibyte chars between bol and point
Date: Thu, 20 Mar 2014 06:10:09 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.3.0

On 20.03.2014 05:58, Eli Zaretskii wrote:

Please tell the details: what does "don't work" mean?

It means that Clang returns a wrong list of completions.

Take this test file, for example:

===
typedef struct test_s {
  int num_a;
  long num_b;
  char c;
} test_t;

int main(int args, char *argv[]) {
  test_t tt;
  /*ыыы*/tt.;
  return 0;
}
===

Put point after `.', type `M-x company-clang'. The list of completions should include 3 items, from the struct test_t.

"Doesn't work" usually means that it returns a different, much longer list. So, with the above file saved in UTF-8, either approach works. But when it's in UTF-16, only the current one succeeds.

The question is not what Clang uses, the question is how does it
expect the offsets to be supplied for files encoded in different
encodings.  That is something that should be described in the Clang
manuals.

Either it isn't, or I don't know what to search for.

> I assumed that it needs offsets in bytes, but that
assumption was not based on anything except looking at your code.

The docstring for the relevant function (http://clang.llvm.org/doxygen/group__CINDEX__CODE__COMPLET.html#ga50fedfa85d8d1517363952f2e10aa3bf) says "column", but apparently it has a special notion of columns. For example, it considers any tab character as taking only one column.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]