[HN Gopher] Clang-expand: Expand function invocations into curre...
       ___________________________________________________________________
        
       Clang-expand: Expand function invocations into current scope
        
       Author : 6keZbCECT2uB
       Score  : 24 points
       Date   : 2023-09-20 16:48 UTC (6 hours ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | kevincox wrote:
       | rust-analyzer has this as well. I've never actually used it
       | though. In most cases where I would have found it useful the
       | function was so simple that I just did it manually without
       | thinking. This also seems to do a better job cleaning up the
       | resulting code than rust-analyzer does for example.
       | let cell = self.cell_mut(pos);
       | 
       | Becomes:                   let cell = {           let ref mut
       | this = self;           &mut this.board[usize::from(pos)]
       | };
       | 
       | Instead of:                   let cell = &mut
       | self.board[usize::from(pos)];
       | 
       | It did manage to simplify the argument (maybe because it was the
       | same name?) but had to rename `self`.
        
       | gpderetta wrote:
       | Very very nice. But it should really be an action in clangd
       | instead of its own tool, for simple integration with LSP.
       | 
       | Also instead of always replacing the text, it could also be an
       | overlay, where the function call is temporarily expanded in your
       | IDE while in some special mode.
        
         | 6keZbCECT2uB wrote:
         | The choice between replacing and making it an overlay is up to
         | your editor. I think it would be pretty to handle either choice
         | as a plugin in your editor given the returned json.
         | 
         | I was surprised it wasn't combined with clangd.
        
       ___________________________________________________________________
       (page generated 2023-09-20 23:00 UTC)