1. A method for sharing source code over a network, comprising: analyzing source code generated on a sharing node in the network to identify a set of code patterns, and assigning at least one predetermined category to the source code based on the identified set of code patterns; storing code pattern information that is based on the analysis and assignment in a directory; and selectively indexing the source code, a dependent code type, and an associated code type.