emacs-vs / docstr

A document string minor mode
https://emacs-vs.github.io/docstr/
GNU General Public License v3.0
65 stars 10 forks source link

Issue when working with type annotation in Python mode #4

Open failable opened 3 years ago

failable commented 3 years ago

The auto generated docstring has some issues with type hintings in Python mode. The type of the first argument is generated as [type] and the types of the following arguments seems shifted:

def forward(
    self,
    input_ids: torch.LongTensor,
    position_ids: torch.LongTensor,
    token_type_ids: torch.LongTensor,
) -> torch.FloatTensor:
    """[summary]

    Args:
        input_ids ([type]): [description]
        position_ids (torch.LongTensor): [description]
        token_type_ids (torch.LongTensor): [description]
         (torch.LongTensor): [description] 

    Returns:
        torch.FloatTensor: [description]
    """
    input_embeddings = self.word_embeddings(input_ids)
    position_embeddings = self.position_embeddings(position_ids)
    token_type_embeddings = self.token_type_embeddings(token_type_ids)

    embeddings = input_embeddings + token_type_embeddings + position_embeddings
    embeddings = self.layer_norm(embeddings)
    embeddings = self.dropout(embeddings)

    return embeddings
jcs090218 commented 3 years ago

This is issue with parsing python arguments. The current python parser is pretty fragile and I would need to take a deeper look on the day. Sorry for the inconvenience!

jcs090218 commented 1 year ago

Just to mentioned, there is another alternative ts-docstr. It's base on tree-sitter, we can now parse parameters in a much dedicated way.