## Keyboard shortcuts

Press `←` or `→` to navigate between chapters

Press `S` or `/` to search in the book

Press `?` to show this help

Press `Esc` to hide this help

# Swift plugin

## Demangling

The swift plugin uses libSwiftDemangle to demangle Swift names. Note that IDA already had a built-in swift demangler, but it was becoming difficult to maintain. In the long-term we hope to fully deprecate IDA’s custom swift demangler in favor of libSwiftDemangle.

However, the new approach still hasn’t been fully integrated into IDA, so there may be times when IDA’s old swift demangler produces more desirable results.

‘cfg/swift.cfg’ file presents all the options

‘-Oswift’ command line switches can be used to enable or disable some plugin options.

## List of options

      - <demangler_path> : use specific libSwiftDemangle library
      - -d : use the built-in IDA swift demangler (legacy)
      - +d : use libSwiftDemangle swift demangler
      - -m : don't present metadata in nice way
      - +m : present metadata in nice way
      - -e : don't import enumeration types
      - +e : import enumeration types
      - -s : don't import structure types
      - +s : import structure types
      - -v : don't set variable type based on mangled names
      - +v : set variable type based on mangled names
      - -f : don't set function prototype based on mangled names
      - +f : set function prototype based on mangled names
      - -g : don't group functions in folders corresponding to modules
      - +g : group functions in folders corresponding to modules

## Examples

      -Oswift:-g

Do not group functions into folders.

      -Oswift:/tmp/libSwiftDemangle_custom.dylib